【发布时间】:2014-01-23 22:30:13
【问题描述】:
嘿,我正在尝试使用我通过异步任务的 JSON 对象调用 http get,但我很难弄清楚如何获取响应,更重要的是如何发送包含请求的 get ...
这是我当前的代码:
private class search_send extends AsyncTask<JSONObject, Integer, Double> {
// private ProgressDialog dialog
ProgressDialog progress_search = new ProgressDialog(search.this);
@Override
protected void onPreExecute() {
progress_search.setMessage("Uploading...");
progress_search.show();
}
protected Double doInBackground(JSONObject... params) {
// TODO Auto-generated method stub
get_search(params[0]);
return null;
}
protected void onPostExecute(Double result) {
progress_search.dismiss();
Toast.makeText(search.this, "Search sending...", Toast.LENGTH_LONG)
.show();
}
public void get_search(JSONObject search_data) {
// Create a new HttpClient and Post Header
HttpParams httpParams = new BasicHttpParams();
HttpClient httpclient = new DefaultHttpClient(httpParams);
HttpGet httpget = new HttpGet("http://10.0.2.2:3000/search");
try {
// add data
StringEntity se = new StringEntity(search_data.toString());
se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE,
"application/json"));
httpget .setEntity(se);
// execute http request
HttpResponse response = httpclient.execute(httpget);
} catch (ClientProtocolException e) {
Log.e("sds", e.getMessage());
} catch (IOException e) {
Log.e("sds 22", e.getMessage());
}
}
}
此行需要更改,因为 get 没有这样的方法,即使我将它用于我的 http 帖子...
httpget .setEntity(se);
因此,如果有人能告诉我我在获取时做错了什么以及如何处理回复......那就太好了。
【问题讨论】:
-
您是否在
doInBackground和onPostExecute方法中忘记了@Override?