2017-02-10 91 views
-4

我得到的活動結果的文件。或者我應該說它的內容uri版本。通過okhttp3無法上傳文件

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // TODO Auto-generated method stub 
    super.onActivityResult(requestCode, resultCode, data); 

    if(resultCode==RESULT_OK && requestCode==0){ 
     Log.d("uri data",""+data.getData()); 
     selectedFileUri = data.getData(); 

我的問題是如何通過okhttp3方法發送此文件?

的okhttp 3方法如下

multipart.addFilePart("data[User][user_picture]", selectedFileUri); 

謝謝您的時間。

回答

1
OkHttpClient client = new OkHttpClient(); 

RequestBody requestBody = new MultipartBody.Builder() 
    .setType(MultipartBody.FORM) 
    .addFormDataPart("image", "your file name.png", 
     RequestBody.create(MEDIA_TYPE_PNG, new File("your absolute file path"))) 
    .build(); 

Request request = new Request.Builder() 
    .url("Your url") 
    .post(requestBody) 
    .build(); 

//Check the response 
try (Response response = client.newCall(request).execute()) { 
    if (!response.isSuccessful()) throw new IOException("Unexpected code " + response); 

    System.out.println(response.body().string()); 
} 

通過這個博客的URIHow to Consume Content From a Uri

OR

Get filename and path from URI from mediastore

+0

好吧,我會嘗試這一點,並通知您 –

+0

Upvoting你的答案,因爲它幫助我。我已經回答了這個問題在這個鏈接http://stackoverflow.com/questions/42140447/file-upload-through-okhttp3 –