2014-12-03 2 views
0

Java 응용 프로그램에서 가장 부족한 http 래퍼 (http://unirest.io/java.html)를 사용하여 http 게시 요청을 보냅니다.Java "Broken Pipe"오류 (Unirest http wrapper 사용)

com.mashape.unirest.http.exceptions.UnirestException: java.net.SocketException: Broken pipe 
    com.mashape.unirest.http.exceptions.UnirestException: java.net.SocketException: Broken pipe 
    at com.mashape.unirest.http.HttpClientHelper.request(HttpClientHelper.java:145) 
    at com.mashape.unirest.request.BaseRequest.asString(BaseRequest.java:56) 

내가 다음대로 전화를 사용하고 코드 : 불행하게도 나는 "깨진 파이프"오류가 계속 실패 할

public static int doHTTPPostWithAdditionalHeaders(String data, String url, HashMap<String, String> additionalHeaders) { 

    try { 
     Unirest.setTimeouts(10000, 10000); 
     HttpResponse<String> jsonResponse = Unirest.post(url) 
       .headers(additionalHeaders) 
       .body(data) 
       .asString(); 

     return jsonResponse.getStatus(); 

    } catch (Exception e) { 
     System.out.println("doHTTPPostWithAdditionalHeaders failed: "+e.toString()); 
    } 
    return 0; 
} 

그것은 대부분의 시간을 작동하지만 것을 때 많은 요청으로 그것을 망치고있어. 여러분이이 문제를 해결할 수있는 아이디어를 얻었습니까? 아니면 좀 더 견고한 솔루션을 추천 할 수 있습니까? 이 게시물 작업은 내 응용 프로그램에 중요한 임무입니다.

답변

2

내가 게시 한 데이터가 할당 된 시간 초과에 비해 너무 큰 것처럼 보입니다.

올드

Unirest.setTimeouts(10000, 10000); 

새로운

Unirest.setTimeouts(10000, 30000);