• 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类中释放资源出错");
                    }
                }
            }
        };
    

      

  • 相关阅读:
    iOS崩溃报告获取一
    GCDTimer
    Runtime
    Socket
    冒泡排序笔记
    学习java虚拟机笔记
    ftp发送文件包括中文名
    java email
    批量数据插入高效 转发
    读取本地硬盘文件,快速扫描插入 数据库
  • 原文地址:https://www.cnblogs.com/qq458978/p/5800137.html
Copyright © 2020-2023  润新知