问题描述
API的post方法不起作用。 NewTask.execute()提供了“无法解析符号”错误。 如果删除此NewTask.execute(),API将不返回任何内容。
makePostRequestAsyncTask NewTask =新的makePostRequestAsyncTask(); NewTask.execute();
我有两个问题:
为什么给不能解决符号错误?
为什么在删除NewTask.execute()时不返回任何内容?
ps:我是否正确使用了异步任务? 由于我是初学者,因此无法确定。 谢谢。
public void makePostRequest()
{
class makePostRequestAsyncTask extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... params) {
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost =
try {
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));
} catch (UnsupportedEncodingException e) {
// log exception
e.printStackTrace();
}
//making POST request.
try {
HttpResponse response = httpClient.execute(httpPost);
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
String response_body = reader.readLine();
Log.d("Http Post Response:", String.valueOf(response));
// HttpResponse response = httpClient.execute(httpPost);
// write response to log
// Log.d("Http Post Response:", response.toString());
} catch (ClientProtocolException e) {
// Log exception
e.printStackTrace();
} catch (IOException e) {
// Log exception
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
if(result.equals("working")){
Toast.makeText(getApplicationContext(), "HTTP POST is working...", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(getApplicationContext(), "Invalid POST req...", Toast.LENGTH_LONG).show();
}
}
makePostRequestAsyncTask NewTask= new makePostRequestAsyncTask();
NewTask.execute();
}
}
1楼
您正在AsyncTask
内部进行初始化和执行。
}
makePostRequestAsyncTask NewTask= new makePostRequestAsyncTask();
NewTask.execute();
}// AsyncTask your class close here
而是意味着在关闭AsyncTask之后
}
}// AsyncTask your class close here
makePostRequestAsyncTask NewTask= new makePostRequestAsyncTask();
NewTask.execute();