2011-06-01 67 views
0

這是我的代碼:紅寶石 - 問題與HTTP郵政

@data = "somedata\r\nsomadata\r\nsomadata\r\n" 
    uri = URI.parse(my_url) 
    http = Net::HTTP.new(uri.host, uri.port) 
    resp, body = http.post(uri.path, @data) 

當我嘗試運行此,我得到一個「sysread執行」的錯誤,說文件的末尾達到(引發EOFError)。 請注意,如果我刪除@data的\ r,錯誤不會發生,但我真的需要它。

我使用的是Ruby 1.8.7,但使用1.9.2時出現了類似的問題。

我想一個PHP類轉換到Ruby,這裏是PHP代碼:

$req = 'somedata\r\nsomadata\r\nsomadata\r\n'; 
$r = new HttpRequest($url, HttpRequest::METH_POST); 
$r->addRawPostData($req); 
$resp = $r->send()->getBody(); 

謝謝!

+0

它在PHP中工作? – Fredefl 2011-06-01 19:21:07

+0

是的,它的工作原理... – Brian 2011-06-01 19:27:29

+0

我看到有人提出這個建議:https://github.com/jnunemaker/httparty – Fredefl 2011-06-01 19:34:41

回答

0

你不能在Http Post中使用換行符!如果你正在開發一個Web應用程序,你可以使用標準的br標籤。你想做什麼?

+0

嗯,我正在將一個PHP類轉換爲Ruby,將使用代碼編輯該問題 – Brian 2011-06-01 19:14:16

0

這是在黑暗中拍攝的,但net/http文章的默認ContentType爲「x-www-form-urlencoded」。嘗試將標題中的ContentType設置爲「text/plain」。請查看net/http docs瞭解如何設置標題。

+0

謝謝,但它沒有工作,同樣的錯誤... – Brian 2011-06-01 20:24:57