2016-07-06 18 views
1

にPOSTパラメータにアクセスすることはできませんが、私は.. MultipartBodyは、私は、サーバー上のアップロードのイメージのために<code>okhttp3</code>を使用していますが、アップロード画像で私は成功okhttp3アンドロイド

私のコードはここにあるとのパラメータをPOSTすることはできません

File sourceFile = new File(sourceImageFile); 

      Log.logInfo("File...::::" + sourceFile + " : " + sourceFile.exists()); 

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


      OkHttpClient client = App.getInstance().getOkHttpClient(); 

      RequestBody requestBody = new MultipartBody.Builder() 
        .setType(MultipartBody.FORM) 
        .addFormDataPart(KEY_ACCESS_TOKEN, accessToken) 
        .addFormDataPart(KEY_FILE, "profile.png", RequestBody.create(MEDIA_TYPE_PNG, sourceFile)) 
        .build(); 

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

      Response response = client.newCall(request).execute(); 

上記のコードでPOSTで「キー」と「値」を追加したいのですがどうすればいいですか。

答えて

2

この方法でHashMap<String, String>を作成し、addからBuilderを作成する必要があります。

これらは輸入品です。

import okhttp3.OkHttpClient; 
import okhttp3.FormBody; 
import okhttp3.Request; 
import okhttp3.RequestBody; 

コード:

// HashMap with Params 
HashMap<String, String> params = new HashMap<>(); 
params.put("Param1", "A"); 
params.put("Param2", "B"); 

// Initialize Builder (not RequestBody) 
FormBody.Builder builder = new FormBody.Builder(); 

// Add Params to Builder 
for (Map.Entry<String, String> entry : params.entrySet()) { 
    builder.add(entry.getKey(), entry.getValue()); 
} 

// Create RequestBody 
RequestBody formBody = builder.build(); 

// Create Request (same) 
Request request = new Request.Builder() 
     .url("url") 
     .post(formBody) 
     .build(); 
3

私は前に学んだように、その値をmember_idを通過したことで、このリンクhttps://stackoverflow.com/a/34127008/6554840

を参照してください。

KEY_ACCESS_TOKENで値を渡しているので、作業する必要があります。

.addFormDataPart(KEY_ACCESS_TOKEN, accessToken) 

は、ポストパラメータとして機能します。

私はうまくいきたいと思います。

注:あなたのウェブ側が動作している必要があります。

+0

しかし、私は中間のPHPサーバー側でこの投稿データを取得することはできませんinterceoter。 –

+0

私はそれについてもっと知りません。あなたが解決策を得たら私に知らせてください。 – Zoya

関連する問題