문제

나는 아파치에 새로왔다 HttpClient, 나는 다음 코드를 사용하여 특정 시간 간격 후에 HTTP 연결 시간 초과 (분리)를 얻었습니다.

PostMethod method = new PostMethod(authURL);
HttpClient client = new HttpClient();
HttpClientParams params= new HttpClientParams();
params.setParameter(params.CONNECTION_MANAGER_TIMEOUT, 10); //10 Nano second
client.executeMethod(method);

그러나 시간 초과/분리를 희망하지 않고 1 분 이상 기다립니다. 문제는 어디에있을 수 있습니까?

도움이 되었습니까?

해결책

httpclient와 관련된 2 개의 타임 아웃이 있습니다. 둘 다 설정하십시오.

  client.getHttpConnectionManager().
        getParams().setConnectionTimeout(5000);
  client.getHttpConnectionManager().
        getParams().setSoTimeout(5000);

그러나 연결이 기본 소켓 호출에 갇히면 값이 무시됩니다. 따라서 요청을 다른 스레드로 실행하여 시간을 내릴 수 있습니다. 이 질문에 대한 내 대답을 어떻게 해야하는지 확인하십시오.

Java 기본 프로세스 타임 아웃

다른 팁

Connection Manager 시간 초과는 연결 관리자로부터 연결을 얻으려고하는 행위가 너무 오래 걸릴 때 트리거됩니다. 이것은 HTTP 연결 자체의 시간 초과와 동일하지 않습니다. 대신 httpclientparams.setsotimeout ()를 사용하십시오.

http://hc.apache.org/httpclient-3.x/apidocs/org/apache/commons/httpclient/params/httpmethodparams.html#setsotimeout%28int%29

설정을 보셨습니까? so_timeout ?

메소드를 실행할 때 사용할 수 있도록 소켓 타임 아웃 (SO_TIMEOUT)을 밀리 초로 설정합니다. 제로의 시간 초과 값은 무한한 시간 초과로 해석됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top