2017-05-31 65 views
2

我试图使用翻新2.0上载文件。除了文件,我还有其他几个参数可以用包含布尔类型的表单数据发送。我的请求声明是 -Retrofit 2.0多部分请求,在表单数据中发送布尔类型包括文件

@Multipart 
    @POST("/upload/abc") 
    Call<UploadResponse> uploadToServer(@Part("img_file\";filename=\"image") RequestBody file, 
              @Part("access_token") RequestBody sessionKey, 
              @Part("is_final") Boolean isFinal, 
              @Part("sequence_id") Integer sequenceId, 
              @Part("entity_id") RequestBody entityId, 
              @Part("image_type") RequestBody imageType); 

我正在使用GsonConverterFactory。我试图方法2 -

代替@Part("is_final") Boolean isFinal我用@Part("is_final") RequestBody isFinal并用RequestBody.create(MediaType.parse("text/plain"), String.valueOf(true))

(2)使用@Part("is_final") Boolean isFinal并用Boolean.true发送在发送(1)。

在这两种情况下,服务器端收到的“is_final”是Unicode或作为字符串而不是布尔值。

什么是实现这一

回答

0

最好的办法我把它通过工作 -

添加compile 'com.squareup.retrofit2:converter-scalars:2.1.0'到gradle这个文件。

在创建改装实例,添加

Retrofit retrofit = new Retrofit.Builder() 
       .baseUrl("url") 
       .client(builder.build()) 
       .addConverterFactory(ScalarsConverterFactory.create()) 
       .addConverterFactory(GsonConverterFactory.create()) 
       .build(); 

现在,您可以安全地发送原始类型的请求。

相关问题