Ruby Httparty الحصول على عنوان URL أو معرف الاستجابة بعد النشر

StackOverflow https://stackoverflow.com/questions/3545401

  •  30-09-2019
  •  | 
  •  

سؤال

كيف يمكنني الحصول على عنوان URL أو معرف الاستجابة من مشروع Rails مع Httparty في نص منفصل بعد القيام بنشر؟

نص روبي:

  HTTParty.post('http://localhost:3000/change_logs', parameters)

استجابة.

هل كانت مفيدة؟

المحلول 3

هذا يعمل بالنسبة لي ، ربما هناك طريقة أفضل للقيام بذلك ..

get_change_log_id = HTTParty.post('http://localhost:3000/change_logs.xml', parameters).to_a

get_change_log_id.each do |r|
  r.each do |sub|
    sub2 = sub.to_a
      sub2.each do |s|
        if s.index "id"
          @change_log_id = s.to_s.sub(/[i]/, '').sub(/[d]/, '')
        end
      end
  end
end

نصائح أخرى

بعد ذلك بعامين ، وجدت طريقة للوصول إلى آخر URI من request ميزة على response:

url      = "http://example.com/redirects/to/www"
response = HTTParty.get(url)
response.request.last_uri.to_s
# => "http://www.example.com"

لسوء الحظ ، لا يتم الاحتفاظ بهذه المعلومات بواسطة Httparty. عندما تواجه إعادة توجيه ، ستتبع إعادة التوجيه وإعادة نتيجة هذا الطلب. لن يحفظ أي من المعلومات من الطلب الأصلي.

والخبر السار هو أن السلوك مثل هذا (عادة) يمكن التنبؤ به. تقوم تطبيقات الويب بشكل عام بإعادة توجيه الأشياء نفسها بعد طلب النشر إلى عنوان URL.

ولكن إذا كنت ترغب حقًا في القيام بذلك ، فسيتعين عليك استخدام مكتبة Net/HTTP التي تأتي مع Ruby. إنه ليس أصعب بكثير من Httparty ، لذلك ليس المزيد من العمل.

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