zoukankan      html  css  js  c++  java
  • android httpclient Host is unresolved 错误解决方案

    无法连接的主要原因是我们的手机都是通过移动或者联通代理出去的请求,所以无法直接发送出去

    public static String request(int netType, String host, String url, 
                int method, List<NameValuePair> pamrams) { 
            if(netType==HttpUtil.WAP_INT){ //wap上网 
                HttpRequestBase request = null; 
                String strReust = null; 
                try { //wap 
                    //截取 http://klmu.v228.10000net.cn/publicbicycle 为 klmu.v228.10000net.cn 
                    HttpHost target = new HttpHost(getHostStr(host),Integer.parseInt(getPort(host))); 
                    if (method == 0) { 
                        request = new HttpPost(getUrl(host,url)); 
                        if (pamrams != null) {  淘宝女装夏装新款
                            ((HttpPost) request).setEntity(new UrlEncodedFormEntity( 
                                    pamrams, HTTP.UTF_8)); 
                        } 
                    } else if (method == 1) { 
                        request = new HttpGet(url); 
                    } 
                    //新建HttpClient对象  
                    DefaultHttpClient httpClient = new DefaultHttpClient(); 
                    HttpHost proxy = new HttpHost("10.0.0.172", 80); 
                    httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, 
                            proxy); 
                    HttpResponse httpResponse = httpClient.execute(target, request); 
                    if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { 
                        strReust = EntityUtils.toString(httpResponse.getEntity()); 
                    } else { 
                        strReust = HTTPERROR_Start + " 服务器httpCode: "+ httpResponse.getStatusLine().getStatusCode() + HTTPERROR_END; 
                    } 
                    httpClient.getConnectionManager().shutdown(); 
                } catch (Exception e) { 
                    strReust = HTTPERROR_Start + e.getMessage() + HTTPERROR_END; 
                } 
                return strReust; 
            } else if(netType==HttpUtil.WIFI_INT){ //wifi 
                url = host+url; 
                HttpRequestBase request = null; 
                String strReust = null; 
                try { 
                    if (method == 0) { 
                        request = new HttpPost(url); 
                        if (pamrams != null) { 
                            ((HttpPost) request).setEntity(new UrlEncodedFormEntity( 
                                    pamrams, HTTP.UTF_8)); 
                        } 
                    } else if (method == 1) { 
                        request = new HttpGet(url); 
                    } 
                    // 设置连接超时时间和数据读取超时时间  
    //              HttpParams httpParams = new BasicHttpParams(); 
    //              HttpConnectionParams.setConnectionTimeout(httpParams, 500); 
    //              HttpConnectionParams.setSoTimeout(httpParams, 60 * 1000); 
                    //新建HttpClient对象  
                    //HttpClient httpClient = new DefaultHttpClient(httpParams); 
                    HttpClient httpClient = new DefaultHttpClient(); 
                    HttpResponse httpResponse = httpClient.execute(request); 
                    if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { 
                        strReust = EntityUtils.toString(httpResponse.getEntity()); 
                    } else { 
                        strReust = HTTPERROR_Start + " 服务器httpCode: "+ httpResponse.getStatusLine().getStatusCode()+ HTTPERROR_END; 
                    } 
                    httpClient.getConnectionManager().shutdown(); 
                } catch (Exception e) { 
                    strReust = HTTPERROR_Start + e.getMessage() + HTTPERROR_END; 
                } 
                return strReust; 
            } else { 
                return  HTTPERROR_Start + "无法连接网络!" + HTTPERROR_END; 
            } 
        }

    * 1:wifi 
    * 2:wap 
    * 3:无法取得网络 
    * @since May 10, 2011 
    * @param conn 
    * @return <Description> 

    */ 
    ublic static int getNetType(Context ctx) { 
    ConnectivityManager conn = (ConnectivityManager)ctx.getSystemService(Context.CONNECTIVITY_SERVICE); 
    if (conn == null){ 
        return HttpUtil.NONET_INT; 

    NetworkInfo info = conn.getActiveNetworkInfo(); 
    if (info == null){ 
        return HttpUtil.NONET_INT; 

    String type = info.getTypeName();//MOBILE(GPRS);WIFI 
    Log.v("tag", "NetworkType=" + type); 
    if (type.equals("WIFI")) { 
        return HttpUtil.WIFI_INT; 
    } else {//if (type.equals("MOBILE")) { 
        return HttpUtil.WAP_INT; 
    }

    由于我是用移动的卡,所以HttpHost proxy = new HttpHost("10.0.0.172", 80); 这个写死了,这里应该取apn里面的数据,好像移动和联通都是一样的。都是这个代理地址

  • 相关阅读:
    [原创]在Windows平台使用msvc(cl.exe) + vscode编写和调试C/C++代码
    几种动态调用js函数方案的性能比较
    z-index随笔
    [原]配置多个密钥免密码登录服务器简明教程
    [转]为 windows cmd 设置代理
    [原创]实现多层DIV叠加的js事件穿透
    [转]linux terminal中使用proxy
    [转]jquery中innerWidth(),outerWidth(),outerWidth(true)和width()的区别
    [转]React表单无法输入原因----约束性和非约束性组件
    [原创]aaencode等类似js加密方案破解方法
  • 原文地址:https://www.cnblogs.com/sky7034/p/2045166.html
Copyright © 2011-2022 走看看