8

私は RestClient リクエストをそのまま使用しています:

response = RestClient.post server_url, post_params, accept: :json

これはうまく機能しています。ただし、サーバーがアップロードを実行している間は時々完了しないため、タイムアウトを増やす必要があります。

私が調査したところ、唯一の解決策は構文を次のように変更することであることがわかりました。

response = RestClient::Request.execute(:method => :post, :url => server_url, post_params, :timeout => 9000000000)

'post_params'ただし、前の呼び出しでできたように、パラメーターのハッシュマップ ( ) を渡すことができないようです。それが含まれるようにするには、どのようにリクエストを記述すればよいですか'post_params'。これは複雑なハッシュマップなので、拡張したり削除したりすることはできません。

助けていただければ幸いです。

4

2 に答える 2

17

送信するデータはペイロードと呼ばれるため、ペイロードとして指定する必要があります。

response = RestClient::Request.execute(:method => :post, :url => server_url, :payload => post_params, :timeout => 9000000, :headers => {:accept => :json})

また、より短いタイムアウトを使用することもできます。そうしないと、Errno::EINVAL: Invalid 引数が発生する可能性があります。

于 2013-01-30T06:32:31.313 に答える