我試圖模仿下面的curl命令完美的作品:從Ruby來的Perl,POST數據消失
curl -k -i -d @content.json -H "Content-Type: application/json" -H "Accept: applicaztion/json" https://localhost:909/api/authenticateUser
我模仿的Ruby/Rails curl命令。我正在使用剩餘客戶端的寶石。目標是用舊式Perl編寫的API。問題是,API不會「看到」在新的紅寶石代碼中發送的有效載荷:
pload = '<string>'.to_json
response = RestClient::Request.execute(url: 'https://localhost:909/api/authenticateUser', method: :post, payload: pload, accept: :json, content_type: :json, verify_ssl: false)
問題出在哪裏?我的Ruby代碼是壞的還是Perl代碼「太愚蠢/過時」來從Ruby獲取有效載荷。這是Perl代碼:
my $data = $cgi->param('POSTDATA') || "";
我傾向於認爲這個問題是我的Ruby代碼,因爲舊的Perl代碼從curl命令接收有效載荷正常上方,並與其他一些老Perl代碼。
感謝您的幫助。
你有看着那嫋嫋屬請求tes與Ruby生成的相比較嗎? –
你實際上是在發送Accept:applica ** z ** tion/json,還是將它複製到SO中時出錯? – hobbs
'curl -d'從它發佈的數據中去掉回車符和換行符,可能服務器取決於所有數據在一行上,不知何故? – hobbs