将cURL命令转换为改装调用

时间:2016-04-01 12:50:26

标签: android curl retrofit2

我试图将cURL命令转换为改装调用。 cURL命令是:

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

我已经通过添加用户名和密码的Base64作为Authorization标头来转换-u命令。我还添加了另一个标题。然而,问题在于改装电话。 Retrofit目前正在召开:

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

使用cURL命令时,音频文件会在服务器上正确处理。但是,当我尝试改装电话时,我收到了我正在使用的服务的错误。似乎改装电话和cURL电话之间存在差异。有谁知道有什么区别?凭据确实被接受,因此不是问题。

1 个答案:

答案 0 :(得分:0)

您的代码尝试将Android File对象发送到服务器。您必须先将文件读入字节数组或其他合适的结构,然后将实际内容发送到服务器。

See this question for a quick solution how to do this