2017-07-25 94 views
0

好吧,在你開始說它是重複的,等等... 我嘗試了所有的方法,我發現在鬆弛/文檔,它並沒有幫助我出來... ...和我只是想不通的問題是什麼okhttp請求/多部分圖像

所以,這些都是過去的2種方式我試圖使請求

final MediaType MEDIA_TYPE_PNG = MediaType.parse("image/png"); 
    //RequestBody reqFile = RequestBody.create(MediaType.parse("multipart/form-data"), loadImageFile); 
    //MultipartBody.Part filePart = MultipartBody.Part.createFormData("picture", loadImageFile.getName(), reqFile); 
    //RequestBody filename = 
    RequestBody.create(MediaType.parse("text/plain"),loadImageFile.getName()); 
    RequestBody requestBody = RequestBody.create(MediaType.parse("image/*"), 
    loadImageFile); 
    MultipartBody.Part filePart = MultipartBody.Part.createFormData("file", 
    loadImageFile.getName(), requestBody); 

註釋的部分是一種方式,而其他線路是這樣的我我正在做它..

在這裏我有接口

@Multipart 
@POST(RestClient.API_REGISTER_URL) 
Call<ResponseBody> register(@Query("name") String name, @Query("email") String email, 
@Query("password") String password, @Query("location") String location, 
          @Query("latitude") double latitude, @Query("longitude") double longitude, 
          @Query("gender") String gender, @Part MultipartBody.Part picture, 
          @Part("picture") RequestBody file, 
          @Query("device_uuid") String device_uuid, @Query("device_os") String device_os, 
          @Query("push_token") String push_token, @Query("api_key") String user); 

要honnest,我根本想不通爲什麼它不從服務器working..the響應主體「的圖片必須爲圖片」,這讓我覺得,不知怎的,它不識別我發送的文件

任何幫助將是apreciated,謝謝。

編輯 我改變了代碼律位,另一種辦法,我試圖使它,仍然什麼也不行與此請求......

RequestBody req = new MultipartBody.Builder().setType(MultipartBody.FORM) 
      .addFormDataPart("picture", loadImageFile.getName(), RequestBody.create(MultipartBody.FORM, loadImageFile)) 
      .build(); 

MultipartBody.Part part = MultipartBody.Part.createFormData("picture", loadImageFile.getName(), req); 

回答

0

我使用這個代碼發送圖像到服務器用okhttp

 final MediaType MEDIA_TYPE_PNG = MediaType.parse("image/png"); 

     RequestBody req = new MultipartBody.Builder().setType(MultipartBody.FORM).addFormDataPart("branchCode", branchCode) 
       .addFormDataPart("upload", "profile.png", RequestBody.create(MEDIA_TYPE_PNG, file)).build(); 

     Request request = new Request.Builder() 
       .url(URLs.UPLOAD_FILE) 
       .post(req) 
       .build(); 

也許問題出現在您的服務器端?

+0

它不能在服務器端,在iOS上工作。所以它應該是客戶端 什麼是branchCode var? –

+0

此外,您的圖像位於設備上? –

+0

只是服務器端的參數名稱。並且您要上傳的文件 – FnR