首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓HttpUrlConnection响应对象

问安卓HttpUrlConnection响应对象
EN

Stack Overflow用户
提问于 2013-06-25 09:16:27
回答 1查看 2.2K关注 0票数 0

嘿,我在我的应用程序中使用HttpUrlConnection。在我看来,每次我打.getInputStream()或urlConnection.getResponseCode()等电话时,都会提出另一个请求,所以当我发出帖子请求时,这对我没有好处。是否有一种方法可以获得某种类型的响应对象,该对象封装响应数据并可以从UI线程访问,如下所示:

代码语言:javascript
复制
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?
        }
    }
EN

回答 1

Stack Overflow用户

发布于 2013-06-25 15:13:32

您可以执行以下步骤:

  1. 在单例类中创建webservice调用
  2. 解析响应并将其封装到自定义对象中(由您创建),并将解析的对象保存到单例实例对象中。
  3. 在此之后,您可以简单地向您的活动发送一条广播消息,让它知道解析的数据在单例中是可用的。
  4. onReceive()方法BroadcastReceiver运行在UI线程上,因此您可以在那里快速更新UI。

在您实现之后,您可以简单地从您的活动调用单例webservice调用方法,就在您注册到将从单例发送的意图之后.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17293463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档