문제

Heroku (heroku.com)를 사용하여 Rails 응용 프로그램을 배포하고 iPhone 클라이언트를 구축하여 인터페이스하고 있습니다. 제 의도는 인증을위한 HTTP 헤더로 전화기의 고유 한 장치 식별자를 앱에 전달하는 것이 었습니다. 로컬로 테스트 할 때 헤더가 잘 통과되지만 Heroku에서는 사용자 정의 헤더를 제거하는 것 같습니다. 루비 스크립트로 확인했습니다.

url = URI.parse('http://#{myapp}.heroku.com/')
#url = URI.parse('http://localhost:3000/')
req = Net::HTTP::Post.new(url.path)
#bogus params
req.set_form_data({'from'=>'2005-01-01', 'to'=>'2005-03-31'}, ';')
#device header
req['HTTP_DEVICE_UDID'] = "XXXXXX"
res = Net::HTTP.new(url.host, url.port).start {|http| http.request(req) }

내 로컬 서버에 비해 헤더가 있지만 Heroku에는 그렇지 않습니다.

어떤 아이디어?

감사,

제레미

도움이 되었습니까?

해결책

X- 헤더, 즉 x-http-device-idid로 전달해 보셨습니까? 대부분의 사용자 정의 또는 비표준 HTTP 헤더는 X- 헤더로 전달됩니다.

다른 팁

나는 이것에 대해 Heroku Support에 게시했으며 마침내 기존 답변이 무엇을 의미하는지 이해했습니다.

"x_"대신 "X-"를 사용해보십시오. 예를 들어, "x-sendfile"은 HTTP 헤더의 이름이지만 랙에 전달되면 "x_sendfile"이됩니다. 이 초기 구두점 후, 나는 나머지 헤더가 자본화되는 것 외에도 정상적으로 전달 될 것이라고 생각합니다.

대나무를 사용하고 있으므로 요청은 Nginx를 통해 전달됩니다.

건배, JD

이것이 나와 같은 다른 초보자에게 이것을 찾는 데 유용 할 수 있다고 생각했습니다.

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