纸上得来终觉浅,绝知此事要躬行。

 

Android HttpGet和HttpPost设置超时

HttpPost:

private Runnable runnable = new Runnable() {
        @Override
        public void run() {
            String url = BaseServicesInfo.SERVER_BASE_PATH + fileName;
            HttpPost httpRequest = new HttpPost(url);
            try{
                HttpEntity entity = new UrlEncodedFormEntity(params);
                httpRequest.setEntity(entity);
                HttpClient client = new DefaultHttpClient();
                // 请求超时
                client.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 20000);
                // 读取超时
                client.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 20000    );
                HttpResponse response = client.execute(httpRequest);
                if(response.getStatusLine().getStatusCode() == 200){
                    str = EntityUtils.toString(response.getEntity());
                    Message msg = new Message();
                    Bundle data = new Bundle();
                    data.putString("value", str);
                    msg.setData(data);
                    handler.sendMessage(msg);
                }else{
                    str = String.valueOf(response.getStatusLine().getStatusCode());
                    Message msg = new Message();
                    Bundle data = new Bundle();
                    data.putString("error", str);
                    msg.setData(data);
                    handler.sendMessage(msg);
                }
            }catch(Exception e){
                e.printStackTrace();
                Message msg = new Message();
                Bundle data = new Bundle();
                data.putString("error", str);
                msg.setData(data);
                handler.sendMessage(msg);
            }
        }
    };

HttpGet:

    Runnable runnable = new Runnable() {
        @Override
        public void run() {
            HttpURLConnection conn = null;
            InputStream inputStream = null;
            try {
                URL url = new URL(baseUrl);
                conn = (HttpURLConnection)url.openConnection();
                conn.setConnectTimeout(10000);
                conn.setReadTimeout(8000);
                conn.setDoInput(true);
                conn.setRequestMethod("GET");
                conn.setRequestProperty("Content-Type", "text/html");
                conn.setRequestProperty("Accept-Charset", "utf-8");
                conn.setRequestProperty("contentType", "utf-8");
                inputStream = conn.getInputStream();
                byte[] buffer = null;
                if(conn.getResponseCode() == 200){
                    buffer = new byte[1024];
                    ByteArrayOutputStream out = new ByteArrayOutputStream();
                    int len;
                    while ((len = inputStream.read(buffer)) != -1)
                    {
                        out.write(buffer, 0, len);
                    }
                    buffer = out.toByteArray();
                }
                mCallback.HandleAsync(buffer);
                SendMsg("value",buffer);
            } catch (Exception e) {
                e.printStackTrace();
                Log.e("sjr","Network-error");
            }
            finally{
                try {
                    if(inputStream != null){
                        inputStream.close();
                    }
                    if(conn != null){
                        conn.disconnect();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                    Log.e("sjr","InvokeWebServiceHelper类中释放资源出错");
                }
            }
        }
    };

备用。

posted on 2012-08-24 14:11  JRoger  阅读(29233)  评论(0编辑  收藏  举报

导航