当前位置: 代码迷 >> Android >> Http Post请求在Android异步任务中提供null?
  详细解决方案

Http Post请求在Android异步任务中提供null?

热度:113   发布时间:2023-08-04 12:00:59.0

API的post方法不起作用。 NewTask.execute()提供了“无法解析符号”错误。 如果删除此NewTask.execute(),API将不返回任何内容。

makePostRequestAsyncTask NewTask =新的makePostRequestAsyncTask(); NewTask.execute();

我有两个问题:

  1. 为什么给不能解决符号错误?

  2. 为什么在删除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();

    }

}

您正在AsyncTask内部进行初始化和执行。

   }
    makePostRequestAsyncTask NewTask= new makePostRequestAsyncTask();
    NewTask.execute();
}// AsyncTask your class close here

而是意味着在关闭AsyncTask之后

    }
}// AsyncTask your class close here
makePostRequestAsyncTask NewTask= new makePostRequestAsyncTask();
    NewTask.execute();
  相关解决方案