두 가지 방법 중 하나를 실행중인 링 경로가 있습니다. org.httpkit.server
를 사용하여 lein-ring
플러그인 Python 요청 시간 초과 + Clojure HttpKit 서버 (링 서버가 아님)
lein ring server
,
그것은 웹 응용 프로그램의 (hs/run-server app {:port 3000}))
처럼 (AN Angular.js 브라우저 클라이언트에 의해 소비되고).
은 내가 요청 라이브러리를 사용하여 파이썬으로 작성된 일부 API 테스트가 있습니다
my_r = requests.post(MY_ROUTE,
data=MY_DATA,
headers={"Content-Type": "application/json"},
timeout=10)
내가 lein ring server
를 사용하는 경우,이 요청은 JS 클라이언트와 파이썬 테스트에서 잘 작동합니다.
내가 httpkit
사용
시간 초과 클라이언트가 시간 초과되었습니다.socket.timeout과 함께 밖으로 Python 클라이언트 시간 :
내가 왜 파이썬을 알아낼 수 없습니다
httpkit
에서 발생하지만 lein-ring
과 함께 발생하지는 않습니다. 따라서 그 원인이 그 차이와 관련 있다고 가정 할 수 있습니다.
- WireShark의 트래픽을 살펴본 결과 두 가지 모두 올바른 응답을 나타내는 것처럼 보입니다. 둘 다 동일한
Content-Length
필드 (15 바이트)를가집니다. - 스레드 수가 10 개 (필요하지 않아야 함)로 변경되었으며 변경되지 않았습니다.
어떤 아이디어가 잘못 되었나요?
기본적으로 동일한 문제가 있습니다. FWIW, 요청이 궁극적으로 10K 바이트 또는 EOF를받을 때까지 기본 파이썬 소켓 라이브러리를 사용하여 읽는 것 같습니다. 그리고 콜 체인의 어떤 것이 연결을 닫지 않는 것처럼 보입니다. 나는 아직도 옵션을 찾고있다. – James
크레이지. 다시 신고 해주세요. 알고 싶군요. – Joe