【发布时间】:2015-11-12 13:56:57
【问题描述】:
我想在发布数据后得到响应,但它失败了。我想创建一个登录系统,我已经成功地将数据提交到 php 文件,现在一切正常我想从相同的函数获得响应,但我无法知道问题出在哪里。
这里是Java函数:
public class PostDataGetRes extends AsyncTask<String, String, String> {
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String... strings) {
try {
postRData();
} catch (NullPointerException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String lenghtOfFile) {
// do stuff after posting data
}
}
public void postRData() {
String result = "";
InputStream isr = null;
final String email = editEmail.getText().toString();
final String pass = editPass.getText().toString();
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://website.com/appservice.php");
try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("id", email));
nameValuePairs.add(new BasicNameValuePair("stringdata", pass));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
resultView.setText("Inserted");
HttpEntity entity = response.getEntity();
isr = entity.getContent();
//convert response to string
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(isr,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
isr.close();
result=sb.toString();
}
catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}
//parse json data
try {
String s = "";
JSONArray jArray = new JSONArray(result);
for(int i=0; i<jArray.length();i++){
JSONObject json = jArray.getJSONObject(i);
s = s +
"Name : "+json.getString("first_name")+"\n\n";
//"User ID : "+json.getInt("user_id")+"\n"+
//"Name : "+json.getString("first_name")+"\n"+
//"Email : "+json.getString("email")+"\n\n";
}
resultView.setText(s);
} catch (Exception e) {
// TODO: handle exception
Log.e("log_tag", "Error Parsing Data "+e.toString());
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
resultView.setText("Done");
}
这里是php代码:
if($id){
$query = mysql_query("SELECT first_name FROM users where email = '$id' ");
while($row=mysql_fetch_assoc($query)){
$selectedData[]=$row;
}
print(json_encode($selectedData));
}
请帮助我到目前为止我已经尝试过但无法取得任何结果。请帮助我如何在查询执行后从 php 文件中获得响应。
【问题讨论】:
-
究竟有什么问题?您在您的 android 应用程序中看不到响应,或者您的网站没有打印任何内容?并且可以肯定,你说没有抛出异常?
-
@mastah 我想从 php 文件中获取响应...实际上我正在发布具有相同功能的数据并且它工作正常但现在我想在发布数据后得到响应。
-
其实我想创建登录功能。所以我已经成功地将数据发布到 php 文件,现在我想用相同的功能从那里得到响应......
-
我们已经知道了。你能从你的网站得到任何回应吗?你开始实现登录功能了吗?
-
是的,我已经从我的网站上检查了 php 代码是否正常工作,我想在 android 上得到响应
标签: java php android android-activity