2016-04-01 17 views
0

cURLコマンドを改造呼に変換しようとしています。 curlコマンドは、次のとおりcURLコマンドをコールを改造するように変換する

curl -u {username}:{password} -X POST 
--header "Content-Type: audio/wav" 
--header "Transfer-Encoding: chunked" 
--data-binary @{audiofile}.wav 
"{url}" -i -v 

IはすでにAuthorizationヘッダとしてユーザ名とパスワードをBase64を添加することによって-uコマンドを変換します。他のヘッダーも追加しました。しかし問題は、改造呼出しによる。 レトロフィットコールは現在、次のとおりです。

@POST 
@Headers({"Transfer-Encoding: chunked", "Content-Type: audio/wav"}) 
Call<Station> translateAudio(@Url String url, @Header("Authorization") String auth, 
     @Body RequestBody file); 

のcURLを使用する場合は、オーディオファイルがサーバー上で正しく処理取得するコマンド。しかし、私が改造呼出しを試みると、私が使用しているサービスからエラーが発生しています。レトロフィットコールとcURLコールの間には違いがあるようです。違いが何であるか知っていますか?信任状は受け入れられるので問題はありません。

+0

どのようなエラーが表示されますか? jonas.koeritz @ –

+0

: エラーがある: { \t "code_description": "無効な要求"、 \t "コード":400、 \t "エラー":「データストリームのオーディオ/ WAVトランスコードすることができない - >オーディオ/ x-float-array " } しかし、それはそのサービスに固有です。おそらく、ファイルの送信の違いを探すのに役立つかもしれません。 – Marc

+0

'file'オブジェクトをどのように作成しますか? –

答えて

0

あなたのコードはAndroid Fileオブジェクトをサーバーに送信しようとします。実際の内容をサーバーに送信するには、ファイルをバイト配列または他の適切な構造に最初に読み込む必要があります。

See this question for a quick solution how to do this

+0

バイト配列でデータを送信しようとしましたが、これで問題は解決しませんでした。私はまだ同じ反応を得る。私がRequestBodyを作成するために使用したメソッドは、RequestBody.create(MediaType.parse( "audio/wav")、bytes)です。 – Marc

関連する問題