Вопрос

Я использую 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-http-device-udid? Большинство пользовательских или нестандартных заголовков HTTP передаются в виде X-заголовков.

Другие советы

Я опубликовал об этом о поддержке Heroku и, наконец, понял, что означал существующий ответ.

Попробуйте использовать «X-» вместо «x_». Например, «X-Sendfile»-это имя заголовка HTTP, но когда это передается в стойку, это становится «x_sendfile». После этой первоначальной пунктуации я считаю, что остальная часть заголовка будет передана нормально, помимо капитализирования.

Поскольку вы используете бамбук, ваши запросы проходят через Nginx, который будет отфильтровать заголовки, которые, по его мнению, являются узорными.

Ура, JD

Просто подумал, что это может быть полезно для других новичков, таких как я, ищу это.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top