Преобразовать команду curl в Ruby http POST(xml) с заголовками
Как я могу сделать сообщение Http с заголовком в Ruby с XML?
В документации есть что-то вроде этой команды curl, и я хочу преобразовать ее в код rails.
$headers = array("Content-type: text/xml", "Content-length: " . strlen($xml),
"Connection: close",);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$data = curl_exec($ch);
echo $data;if(curl_errno($ch))
print curl_error($ch);else
curl_close($ch);
Я использую Net::HTTP, и я немного застрял, я пытался:
uri = URI("sample_url")
xml = 'sample xml'
req = Net::HTTP::Post.new(uri.path)
req['Content-Type'] = 'text/xml'
req['Content-length'] = xml.length
req['Connection'] = 'close'
req.body = xml
res = Net::HTTP.start(uri.hostname, uri.port) {|http|
http.request(req)
}
1 ответ
Попробуй это:
uri = URI("sample_url")
xml = 'sample xml'
req = Net::HTTP::Post.new(uri, 'Content-Type' > 'text/xml', 'Content-length' => xml.length,'Connection' => 'close')
req.body = xml
res = Net::HTTP.start(uri.hostname, uri.port) {|http|
http.request(req)
}