Frage

Ich benutze Heroku (Heroku.com), um meine Rails -Anwendung bereitzustellen, und baue einen iPhone -Kunden, der mit ihm eine Verbindung herstellt. Meine Absicht war es, die eindeutige Gerätekennung des Telefons als HTTP -Header zur Authentifizierung an die App weiterzugeben. Wenn ich lokal teste, kommen meine Header gut durch, aber auf Heroku scheint es meinen benutzerdefinierten Header auszuziehen. Ich habe mit einem Ruby -Skript verifiziert:

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) }

Gegen meinen lokalen Server ist der Header da, aber auf Heroku ist es nicht.

Irgendwelche Ideen?

Vielen Dank,

Jeremy

War es hilfreich?

Lösung

Haben Sie versucht, dies als X-Header zu bestehen, dh x-http-device-udid? Die meisten kundenspezifischen oder nicht standardmäßigen HTTP-Header werden als X-Header übergeben.

Andere Tipps

Ich habe darüber auf Heroku -Unterstützung gepostet und schließlich verstanden, was die vorhandene Antwort bedeutete.

Versuchen Sie "X-" anstelle von "x_". Zum Beispiel ist "X-Sendfile" der Name eines HTTP-Headers, aber wenn dies an Rack übergeben wird, wird dies "x_Sendfile". Nach dieser ersten Interpunktion glaube ich, dass der Rest des Headers normal verabschiedet wird, abgesehen von der Kapitalisierung.

Da Sie Bambus verwenden, werden Ihre Anfragen durch nginx weitergegeben, wodurch die von ihr glaubenden Header ausgelöst werden.

Prost, JD

Ich dachte nur, dies könnte für andere Neulinge wie mich nützlich sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top