سؤال

أنا أستخدم Heroku (Heroku.com) لنشر تطبيقات القضبان الخاصة بي، وأنت بناء عميل 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-Udid؟ يتم تمرير معظم رؤوس HTTP العادة أو غير القياسية كما رؤوس X.

نصائح أخرى

لقد نشرت حول هذا على دعم Heroku وفهم أخيرا ما تعنيه الإجابة الحالية.

حاول استخدام "X-" بدلا من "X_". على سبيل المثال، "X-SendFile" هو اسم رأس HTTP، ولكن عندما يتم تمرير هذا إلى رف، يصبح هذا "x_sendfile". بعد هذا الترقيم الأولية، أعتقد أن بقية الرأس سيتم تمريرها بشكل طبيعي، بصرف النظر عن رسملة.

نظرا لأنك تستخدم الخيزران، فإن طلباتك تمر عبر nginx، والتي ستقوم بتصفية الرؤوس التي تعتقد أنها مشوهة.

هتاف، دينار

فقط اعتقدت أن هذا قد يكون مفيدا لوبري أخرى مثلي تبحث عن هذا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top