ThreadSafeClientConnManager 및 HttpParams를 생성자에 전달하여 새 HttpClient를 만들고 있지만 항상 잘못된 요청 오류가 발생합니다. 무엇이 잘못되었는지 알아 내기 위해 디버깅했지만 모두 헛된 것이 었습니다. 나는 내 코드가 있습니다에 g_client.execute(postMethod);
를 호출 할 때 몇 가지 솔루션을 나에게 제공하는 여기 내 코드 블록HttpClient 4.0에서 HttpParams 객체 설정
sc.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
sc.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));
HttpParams basicParams = new BasicHttpParams();
ThreadSafeClientConnManager connmgr = new ThreadSafeClientConnManager(basicParams, sc);
ConnManagerParams.setMaxConnectionsPerRoute(
basicParams,
// if we have more than 5 concurrent leads, good problem to have
new ConnPerRoute() {
public int getMaxForRoute(HttpRoute httproute) {
return 5;
}
});
g_client = new DefaultHttpClient(connmgr, basicParams);
// It's a lead, be forgiving with timeout
g_client.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 5000);
g_client.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 5000);
ConnManagerParams.setTimeout(basicParams, 2000);
인 400 상태 코드가 뭔가 내 요청에 문제가 있습니다 의미이다. 내 DefaultHttpClient 생성자
g_client = new DefaultHttpClient(connmgr, null);
클라이언트가 성공적으로 실행에 null을 전달하지만, 내가 기본 PARAM이 maxconnectionperroute
를 설정할 필요로하는 올바른 방법이 아니라면. 나는 여기에 의심스러운 코드를 붙여 넣었다. 제발 좀 도와주세요. 나는 여기 붙어있다.
HttpClient 4.0 버전을 사용 중입니다.
아파치 HttpClient를 같은 오래된 버전을 사용하는 특별한 이유가 있습니까? – oleg
이 HTTP 클라이언트 버전 만 지원하는 WebSphere 서버 (정확한 버전을 모름)를 사용하고 있기 때문에 한 가지 이유가 있습니다. –