画像と文字列パラメータを使用してファイルをアップロードしようとしていますが、ファイルは正常にアップロードされますが、文字列paremeterは常にnullです。他の誰かが私を助けてくれますか?前もって感謝します!asp.net web apiに改造したアンドロイドファイルアップロード
//Retrofit Interface
@Multipart
@POST("account/imageupload")
Call<ResponseBody> uploadProfilePicture(@Part MultipartBody.Part file,
@Part("userid") RequestBody userid);
//Activity
ApiClient apiClient = new ApiClient(token.getAccessToken(), "multipart/form-data");
ApiInterface apiService = apiClient.getClient().create(ApiInterface.class);
File file = new File(selectedImagePath);
RequestBody reqFile = RequestBody.create(MediaType.parse(getContentResolver().getType(selectedImageUri)), file);
MultipartBody.Part body = MultipartBody.Part.createFormData("file", file.getName(), reqFile);
RequestBody user = RequestBody.create(MultipartBody.FORM, token.getUserId());
Call<ResponseBody> call = apiService.uploadProfilePicture(body, user);
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
int statusCode = response.code();
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
String message = t.getMessage();
}
});
//Web API (C# web api)
[Route("imageupload")]
[HttpPost]
public async Task<IHttpActionResult> UploadProfilePicture([FromBody]
Models.ProfilePhotoUpload photo)
{
WriteImage(photo.file);
return Ok();
}
//Api Controller Model
public class ProfilePhotoUpload
{
string userid { get; set; }
public HttpFile file { get; set; }
}
問題は、ファイルが正しくアップロードされるが、useridパラメータが常にnullであることです。
を。 –
ああ、あなたは正しかったHaresh、私のAPIモデルのuseridプロパティはパブリック修飾子が見つからなかったので、私はpublicとして設定しました。 –
素晴らしい幸運。 –