1
在看着越來越壞請求紅寶石:Escaping parameters in set_form_data POST,並且Ruby on Rails HTTPS Post Bad Request在軌道上的SSL後
def send_request(params)
host = "https://hc.mercurydev.net"
uri = URI.parse(host)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
xml = build_xml_for_checkout(params)
http.start do |http|
req = Net::HTTP::Post.new('http://www.mercurypay.com/InitializePayment')
header = {'Host' => 'hc.mercurydev.net', 'Content-Type' => 'text/xml; charset=utf-8', 'Content-Length' => 'length', 'SOAPAction' => 'http://www.mercurypay.com/InitializePayment'}
req.set_form_data(header, xml)
response = http.request(req)
end
end
這是我第一次不得不建立紅寶石我自己的崗位要求,我敢肯定,我很想念有些簡單,但是什麼?
- 我確認xml是100%好的,所以它必須是我的頭文件或我如何構建請求的東西。
編輯:看着ruby-api-doc後:我想出了這一點:
uri = URI.parse(host)
Net::HTTP.start(uri.hostname, uri.port,
:use_ssl => uri.scheme == 'https').start do |http|
req = Net::HTTP::Post.new uri.path
req.body = xml
req.set_form_data(header)
res = http.request req
end
它返回(即使我重新啓動我的服務器),我有一個開放的HTTP會話。
沒有人知道這件事嗎? – Ryan