2016-04-27 1 views
0

私はこのようなヘッダを設定しています: ファイルがあるtest.txtにあるHTTParty POSTでファイルを送信するときにContent-LengthヘッダーとContent-Typeヘッダーを設定するにはどうすればよいですか?

size = File.size(file) 

h = { 
    "Content-Type":  'text/plain' 
    "Content-Length":  size.to_s, 
    "Other-Header":  'some-header'  
} 

b = File.read(file) 

HTTParty.post('/some/api/url', {headers: h , body: b}) 

ヘッダは次のように設定します要求:

<- "POST /some/api/url\r\n 
Content-Type: text/plain\r\n 
Content-Length: 16\r\n 
Other-Header: some-header\r\n 
Connection: close\r\n 
Host: somehost.com\r\n 
Content-Length: 16\r\n 
Content-Type: application/x-www-form-urlencoded\r\n\r\n" 

のContent-LengthとContent-Typeが追加されますTransfer-Encodingの他に、チャンクに設定されています。

どのようにContent-Length、Content-Type、Transfer-Encodingを設定し、HTTPartyがそれを独自に設定するのを避けることができますか?

希望です。

あなたの時間のためのThx!

+0

を試してみてください? – spickermann

+0

Backblaze.com APIを使用してファイルをアップロードしようとしています。彼らの書類はそのようなことを求めている。そこに "生の"ネット/ httpの作業の解決策があります。私はそれに取り組んでいますが、私はhttpartyを使いたいと思います。答えのためのhttps://www.backblaze.com/b2/docs/b2_upload_file.html – Adax

答えて

0

はあなたがこれらのヘッダを自分で設定することで実現しようとしないこの

HTTParty.post(END_POINT_URL, 
:body => data.to_json, 
:headers => { 'Content-Type' => 'application/json', 
'Content-Length' => content_length, 'Other-Header' => other_header, })  
+0

Thx。しかし、私はコンテンツの種類を 'text/plain'に設定し、本文をJSONとしてではなく送信する必要があります。私はbackblazeにファイルをアップロードしています:(backblaze.com/b2/docs/b2_upload_file.html)。 Transfer-Encodingはチャンクに設定されており、私はそれを避ける必要があります。 – Adax

関連する問題