android httpclient 호스트 가 해결 되 지 않 은 오류 해결 방안 입 니 다.

작가 도 이 문 제 를 계속 만 났 습 니 다. 이상 하 게 와 이 파이 로 연결 하 는데 문제 가 없습니다. 와 이 파 이 를 닫 거나 와 이 파이 구역 에 없 으 면 제 서버 에 연결 할 수 없습니다.
 
 
독자 가 먼저 이 문장 을 읽 을 수 있다 http://blog.csdn.net/dropWater_yjqbll/archive/2010/12/16/6079531.aspx
 
연결 이 되 지 않 는 주요 원인 은 우리 의 휴대 전 화 는 모두 이동 이나 연결 대 리 를 통 해 나 가 라 는 요청 이기 때문에 직접 보 낼 수 없다 는 것 이다.
 
자신 이 쓴 종 류 는 다음 과 같다.
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 안의 데 이 터 를 가 져 와 야 합 니 다. 마치 이동 과 연결 이 모두 같은 것 같 습 니 다.모두 이 대리 주소 입 니 다.

좋은 웹페이지 즐겨찾기