Android HttpUrlConnection响应对象

时间:2013-06-25 09:16:28

标签: android httpurlconnection

嘿,我在我的应用程序中使用HttpUrlConnection。而且在我看来,每当我打电话给.getInputStream()urlConnection.getResponseCode()等时,它都会发出另一个请求,所以当我发出POST请求时,这对我来说并不好。有没有办法获得某种响应对象,它封装了响应数据,可以从UI线程访问,如下所示:

private class RegisterAsync extends AsyncTask<String, Void, HttpResponse> {

        protected String doInBackground(String... strings) {
            HttpURLConnection urlConnection = null;
            String message = null;
            try {
                URL url = new URL(REGISTER_URL);
                urlConnection = (HttpURLConnection) url.openConnection();
                urlConnection.setDoOutput(true);
                urlConnection.setChunkedStreamingMode(0);
                OutputStream out = new BufferedOutputStream(urlConnection.getOutputStream());
                out.write(strings[0].getBytes("UTF-8"));
                out.flush();
                out.close();
                HttpResponse response = urlConnection.getResponse();
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                urlConnection.disconnect();
            }
            return Response;
        }

        protected void onPostExecute(HttpResponse response) {
            //Do some with response object: get status, headers, content etc?
        }
    }

1 个答案:

答案 0 :(得分:0)

您可以执行以下步骤:

  1. 在单件类中创建webservice调用
  2. 解析响应并将其封装在自定义对象(由您制作)中,并将解析后的对象保存为单例作为实例对象。
  3. 在此之后,您只需向活动发送broadcast消息即可让其知道解析数据在单身人士中可用
  4. onReceive() BroadcastReceiver方法在UI线程上运行,因此您可以在那里快速更新您的用户界面。
  5. 实施之后,您可以在注册到将从单身人士发送的意图后立即从您的活动中调用单件web服务调用方法...