2017-05-15 13 views
1

My Rails 애플리케이션은 파트너의 ICS 파일을 정기적으로 폴링하고 때로는 아무 이유없이 실패합니다. 내가 할 때 :컬링 작업으로 요청 받기 Net :: HTTP 및 OpenURI 실패

curl https://www.airbnb.es/calendar/ical/234892374.ics?s=23412342323 

(PARAMS 번호의 년대가 여기 위조)

을 나는 ICS 파일의 내용을 일치 출력을 얻을. 그냥 브라우저에서 열뿐만 아니라 잘 작동합니다.

내가 사용하는 경우 :

Net::HTTP.get(URI(a.ics_link)) 

가 나는 "503 서비스를 일시적으로 사용할 수 없음"응답을 얻을. 비슷한 결과를 얻은 OpenURI도 시도했습니다.

왜 서버가 말풍선이나 브라우저의 요청을 다르게 처리하고 있습니까?

루비가이 문제를 해결할 수있는 방법이 있습니까?

+1

이것은 본질적으로 대답이 아니지만 일반적으로 Net :: HTTP를 사용하여 루비에서 API 요청을한다고는 생각하지 않습니다. 개인적으로 https://github.com/httprb/http를 사용하지만이 페이지에서 HTTP 요청을 처리하는 다른 보석을 볼 수 있습니다. – whodini9

+0

나머지 시간 동안 작동하는 나의 실제 소스 코드 (이 airbnb ics 파일은 일관되게 실패하는 것처럼 보입니다)는 open-uri를 사용합니다. 난 정말 왜 당신이 두 가지 다른 HTTP 클라이언트에서 다른 응답을 얻을 것이라고 혼란 스러워요. – Vincent

+0

요청한 서버가 referer, cookie, user agent와 같이 넘겨지지 않는 선택적 헤더에 대한 검사를 수행하고있을 수 있습니다. 인증을 필요로하지 않는다고 가정합니다. – cohart

답변

-1

https 문제입니다. 이유는 모르지만 Ruby에서 URL을 https로 전환하면 제대로 작동합니다.