2013-06-12 4 views
1

본질적으로 매우 큰 JSON 파일 (약 420kB)을 사용하여 일부 데이터를 게시하려고합니다. 문제는 로컬 서버에 게시 할 때 제대로 작동하지만 외부 서버에 대해서는 시간이 초과된다는 것입니다.큰 파이썬 JSON 게시물 요청 시간 초과

headers = { 
"Content-Type": "application/json", 
"Accept": "application/json" 
}; 

response, content = httplib2.Http().request( 
    uri="http://%s:%s/json" % (host, port), method='POST', 
    headers=headers, 
    body=json_string) 

을하고 내가 오류가의 라인을 따라 뭔가 : 코드는 다음과 같습니다이에

socket.error: [Errno 60] Operation timed out 

어떤 생각? 어쩌면 소켓 연결이 로컬에서 시간 초과되었다고 생각했지만이 문제를 해결할 방법을 모릅니다. "import socket"라이브러리의 소켓 호출은 모두 영향을 미치지 않는 것 같습니다.

UPDATE는

지금은 서로 다른 네트워크의 몇을 시도했습니다, 그리고 스크립트가 난 비교적 느린 하나 이외의 다른 모든 네트워크에서 작동하기 때문에이 시간 제한 문제가, 것 같다 지금. 따라서 선택은 어떻게 든 데이터를 스트리밍하거나 시간 초과를 효과적으로 늘릴 수있는 방법을 찾아냅니다.

답변

0

응답에 필요한 시간이 기본 시간 초과보다 큰 것으로 보입니다.

response, content = httplib2.Http().request( 
uri="http://%s:%s/json" % (host, port), method='POST', 
headers=headers, 
body=json_string , timeout=100) (set the time as required) 

에 시간 제한을주는 시도하거나 유

import socket 
timeout = 100 (set the time as required) 
socket. setdefaulttimeout(timeout) 
+0

불행하게도 첫 번째 제안은 실제로 내가 파이썬의 버전에 존재하지 않는 응답을 가지고 충분히 큰 소켓 타임 아웃을 설정할 수 있습니다 사용. 타임 아웃 인수가 없습니다. 프로그램이 실행 되더라도 두 번째는 효과가없는 것 같습니다. –