<p>faraday 0.8.X dan typhoeus</p>

Dibuat pada 18 Sep 2012  ·  11Komentar  ·  Sumber: lostisland/faraday

Apakah faraday 0.8.X mendukung klien tifus?

Komentar yang paling membantu

Maaf saya lupa membalas ini. Anda mungkin melewatkan nilai header yang nihil, dan net_http mencoba memproses nilai header sebagai string.

Untuk mengatasinya, pastikan setiap header yang Anda berikan benar-benar memiliki nilai string.

Semua 11 komentar

dukung oke ;)

Hmm saya mengatur:

conn = Faraday.new(url, ssl: {verify: false}) lakukan |builder|
builder.response :follow_redirects, :limit => 3, :standards_compliant => false, :cookie => :all
builder.adapter :typhoeus
akhir

Permintaan terkirim tetapi dengan net_http !
Bagaimana saya bisa beralih ke typhoeus dari em_http?
Di 0.7.X typhoeus bekerja dengan baik.

Jejak tumpukan saya:
https://Gist.github.com/3743068

Saya mengatur adaptor typhoeus atau em_http, tetapi di log:
/home/johnbat26/.rvm/gems/ruby-1.9. 3-p194@webex/gems/faraday-0.8.4/lib/faraday/adapter/net_http.rb :54:in new' /home/johnbat26/.rvm/gems/ruby-1.9.3-p194@webex/gems/faraday-0.8.4/lib/faraday/adapter/net_http.rb:54:in create_request'
/home/johnbat26/.rvm/gems/ruby-1.9. 3-p194@webex/gems/faraday-0.8.4/lib/faraday/adapter/net_http.rb :74:dalam perform_request' /home/johnbat26/.rvm/gems/ruby-1.9.3-p194@webex/gems/faraday-0.8.4/lib/faraday/adapter/net_http.rb:37:in call'

server mendapatkan respons dengan status 503 tetapi net_http mendapatkan kesalahan:
Kesalahan
metode `strip' yang tidak ditentukan untuk nil:NilClass

Anda sedang menginisialisasi koneksi Faraday seperti ini:

conn = Faraday.new(url, ssl: {verify: false}) do |builder|
  builder.response :follow_redirects, :limit => 3, :standards_compliant => false, :cookie => :all
  builder.adapter :typhoeus
end

Ini terlihat baik-baik saja. Tetapi apakah Anda menggunakan koneksi yang sama untuk membuat permintaan? Anda belum menunjukkan kepada kami kode yang Anda gunakan untuk melakukan permintaan menggunakan Faraday. Mungkin Anda menggunakan dua koneksi Faraday yang berbeda.

Tip: coba gunakan follow_redirects hanya dengan opsi default:

builder.response :follow_redirects

Saya melihat dalam mode debug bahwa objek yang terhubung menggunakan adaptor typhoeus, tetapi dalam log saya melihat net_http?! Mengapa?

Saya menggunakan kode berikutnya:

require 'faraday'
require 'faraday_middleware'
require 'em-http'
require 'typhoeus'


module MediationHelper
 # Parameters:
  # url = args[:url]
  # method = args[:method] || :post
  # adapter = args[:adapter] || :net_http
  # body = args[:body] || ""
  # params = args[:params]
  # authentication = args[:auth]
  # headers = args[:headers] || {'Content-Type' => 'text/xml; charset=utf-8'}
  # timeout = args[:timeout] || 60
  # open_timeout = args[:open_timeout] || 60
  #
  def self.send_http_request(args)
    url = args[:url]
    method = args[:method] || :post
    adapter = args[:adapter] || :net_http
    params = args[:params]
    body = args[:body] || ""
    authentication = args[:auth]
    headers = args[:headers] || {'Content-Type' => 'text/xml; charset=utf-8'}
    timeout = args[:timeout] || 60
    open_timeout = args[:open_timeout] || 60
    conn = Faraday.new(url, ssl: {verify: false}) do |conn|
      conn.response :follow_redirects
      conn.adapter adapter
    end
    conn.basic_auth(args[:username], args[:password]) if authentication
      response = conn.send(method) do |req|
        req.headers.update headers
        req.body = body
        req.params = params if params
        req.options = {
            :timeout => timeout, # open/read timeout Integer in seconds
            :open_timeout => open_timeout, # read timeout Integer in seconds
        }
      end
    response
  end
end

selanjutnya saya memohon ini:

      response_for_login_request = MediationHelper.send_http_request(:url => url,
                                                                     :body => login_request_xml,
                                                                     :adapter => :typhoeus
                                                                     :headers => {'Content-Type' => "text/xml; charset=utf-8",
                                                                                  'Cookie' => my__cookie,
                                                                                  'SOAPAction' => '""'})

Saya menyusun:
conn.response :follow_redirects
dan masih mendapatkan kesalahan:
Pengecualian
TanpaMetodeKesalahan
Kesalahan
metode `strip' yang tidak ditentukan untuk nil:NilClass

/home/johnbat26/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:1435:in `block in initialize_http_header'
/home/johnbat26/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:1433:in `each'
/home/johnbat26/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:1433:in `initialize_http_header'
/home/johnbat26/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:1862:in `initialize'
/home/johnbat26/.rvm/gems/ruby-1.9.3-p194@webex/gems/faraday-0.8.4/lib/faraday/adapter/net_http.rb:54:in `new'
/home/johnbat26/.rvm/gems/ruby-1.9.3-p194@webex/gems/faraday-0.8.4/lib/faraday/adapter/net_http.rb:54:in `create_request'
/home/johnbat26/.rvm/gems/ruby-1.9.3-p194@webex/gems/faraday-0.8.4/lib/faraday/adapter/net_http.rb:74:in `perform_request'
/home/johnbat26/.rvm/gems/ruby-1.9.3-p194@webex/gems/faraday-0.8.4/lib/faraday/adapter/net_http.rb:37:in `call'
/home/johnbat26/.rvm/gems/ruby-1.9.3-p194@webex/gems/faraday_middleware-0.8.8/lib/faraday_middleware/response/follow_redirects.rb:76:in `perform_with_redirection'
/home/johnbat26/.rvm/gems/ruby-1.9.3-p194@webex/gems/faraday_middleware-0.8.8/lib/faraday_middleware/response/follow_redirects.rb:65:in `call'
/home/johnbat26/.rvm/gems/ruby-1.9.3-p194@webex/gems/faraday-0.8.4/lib/faraday/connection.rb:226:in `run_request'
/home/johnbat26/.rvm/gems/ruby-1.9.3-p194@webex/gems/faraday-0.8.4/lib/faraday/connection.rb:99:in `post'
/home/coding/projects/idea_projects/tsp-bwks-mediation/app/helpers/mediation_helper.rb:50:in `send_http_request'
/home/coding/projects/idea_projects/tsp-bwks-mediation/app/helpers/broadworks_helper.rb:81:in `authenticate'
/home/coding/projects/idea_projects/tsp-bwks-mediation/app/helpers/broadworks_helper.rb:121:in `init_broadworks_session'
/home/coding/projects/idea_projects/tsp-bwks-mediation/app/jobs/webex_requests_job.rb:24:in `block in perform'
/home/johnbat26/.rvm/gems/ruby-1.9.3-p194@webex/gems/nokogiri-1.5.5/lib/nokogiri/xml/node_set.rb:239:in `block in each'
/home/johnbat26/.rvm/gems/ruby-1.9.3-p194@webex/gems/nokogiri-1.5.5/lib/nokogiri/xml/node_set.rb:238:in `upto'
/home/johnbat26/.rvm/gems/ruby-1.9.3-p194@webex/gems/nokogiri-1.5.5/lib/nokogiri/xml/node_set.rb:238:in `each'
/home/coding/projects/idea_projects/tsp-bwks-mediation/app/jobs/webex_requests_job.rb:18:in `perform'

Maaf. Ini kesalahan saya.
Saya melakukan 2 permintaan, dan melupakan permintaan kedua dengan adaptor default.
Dengan typhoeus kesalahan ini tidak muncul.
Tapi apa yang dilakukan dengan net_http adapter dan error: undefined method `strip' for nil:NilClass ?

Maaf saya lupa membalas ini. Anda mungkin melewatkan nilai header yang nihil, dan net_http mencoba memproses nilai header sebagai string.

Untuk mengatasinya, pastikan setiap header yang Anda berikan benar-benar memiliki nilai string.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

mokolabs picture mokolabs  ·  3Komentar

amrrbakry picture amrrbakry  ·  4Komentar

QuinnWilton picture QuinnWilton  ·  4Komentar

ioquatix picture ioquatix  ·  4Komentar

JasonBarnabe picture JasonBarnabe  ·  4Komentar