プロジェクトを再コーディングして、Android に実装されているデフォルトの HttpClient の代わりに okHttp を使用したいと考えています。
okhttp-main リリースの最新ソースをダウンロードしました。
ここで、POST リクエストを作成および構築する方法の例をいくつか見つけました。
今私の問題。複数のデータ (文字列、ファイルなど) を保持する RequestBody を作成したいのですが、それらを直接割り当てることはできません。
RequestBuilder は、追加されたデータを取得するさまざまなループを通過する必要があることを意味します。
OkHTTPs RequestBody は、例 https://github.com/square/okhttp/wiki/Recipesにリストされているように、すぐにデータが必要なようです
のようなものを試したいとき
RequestBody requestBody = new MultipartBuilder().type(MultipartBuilder.FORM);
for (Object aMData : dataClass.getData().entrySet()) {
Map.Entry mapEntry = (Map.Entry) aMData;
String keyValue = (String) mapEntry.getKey();
String value = (String) mapEntry.getValue();
requestBody.addPart(keyValue, value);
}
for (DataPackage dataPackage : dataClass.getDataPackages()) {
requestBody.addPart("upfile[]", dataPackage.getFile());
}
requestBody.build();
build() 自体が RequestBody を作成するため、失敗します。単なる MultipartBuilder() になる前に。タイプを RequestBody に強制しようとすると、コンパイル/実行されません。
では、MultiPartBuilder を作成して DATA と Strings を追加した後に、これらのデータを追加する適切な方法は何ですか?