我正在使用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-Header,即X-HTTP-Device-udid?大多数自定义或非标准的HTTP标头作为X标头传递。

其他提示

我在Heroku支持上发布了有关此信息的信息,并最终了解现有答案的含义。

尝试使用“ X-”而不是“ X_”。例如,“ x-sendfile”是HTTP标头的名称,但是当将其传递给机架时,这将变成“ x_sendfile”。在最初的标点符号之后,我相信其余的标头将被正常通过,除了被大写。

由于您使用的是竹子,因此您的请求将通过NGINX,这将过滤掉它认为已畸形的标题。

欢呼,JD

只是认为这对于像我这样的其他新手可能很有用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top