1
私は画像がサーバにアップロードされるアンドロイドアプリケーションを持っています。私は画像をアップロードするために改造ライブラリを使用しています。そのために、呼び出しが行われたときに動的に追加されるaccess_tokenであるヘッダ部分があります。Android Retrofitヘッダ値を動的に設定する
ApiInterface
@Headers({"source: android"})
@Multipart
@POST("doImageUpload.php")
Call<ResponseBody> imageUpload(@Header("access_token") String accesstoken,@Part("username") RequestBody username, @Part("action") RequestBody action,@Part("image_data") RequestBody image_data );
ImageUpload機能
マイaccess_tokenは、共有の好みに保存されていると、私にはわからない画像アップロードfunction.Iにこのaccess_tokenはを追加する必要がありますされpublic void imageupload(String imagepath)
{
final ProgressDialog mProgressDialog = new ProgressDialog(this);
mProgressDialog.setIndeterminate(true);
mProgressDialog.setMessage("Loading...");
mProgressDialog.show();
String action = "imageUpload";
String access = mPreferences.getString("accesstoken","");
ApiInterface apiService =
ApiClient.getClient().create(ApiInterface.class);
final String TAG = "Image Upload";
MediaType type = MediaType.parse("text/plain; charset=utf-8");
Call<ResponseBody> call = apiService.imageUpload(@Header(RequestBody.create(type,mPreferences.getString("accesstoken", "")))
RequestBody.create(type,mPreferences.getString("UserName", "")),RequestBody.create(type,imagepath),RequestBody.create(type,action));
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody>call, Response<ResponseBody> response) {
ResponseBody ResponseBody = response.body();
Log.d("requrl",response.raw().request().url().toString());
Log.d(TAG, "signup" + ResponseBody.toString());
if (mProgressDialog.isShowing())
mProgressDialog.dismiss();
try {
JSONObject obj = new JSONObject(response.body().string());
Log.d("chkva","--"+obj.getBoolean("status"));
}
} catch (Exception exception){
Log.d("Error123","sad"+exception.getMessage());
}
}
@Override
public void onFailure(Call<ResponseBody>call, Throwable t) {
// Log error here since request failed
Log.e(TAG, t.toString());
}
});
}
私は正しいメソッドを使用しているかどうか、ヘッダーを追加するかどうか。誰もこの状況で私を助けることができます。
はimageUpload()
内のparamのヘッダタイプがSTRINGで事前
これを参考にしてください:https://futurestud.io/tutorials/retrofit-add-custom-request-header – Yat3s