Retrofit2を使用してサーバー上のファイルを送信しようとしています。 私はドキュメントに従ってすべてを行いますが、常に400のサーバーエラーが発生します。Retrofit - Multipart request:必須MultipartFileパラメーター 'file'がありません。
私はこのように実行しようとしましたよ:
RequestBody body =
RequestBody.create(MediaType.parse("image/png"), photo);
//..........
@Multipart
@POST(ADD_PHOTO)
Observable<HPSPhotoResponse>
addPhoto(@Part("file") RequestBody file);
...と、このような:
MultipartBody.Part part = MultipartBody.Part.createFormData("file", "file", body);
//...........
@Multipart
@POST(ADD_PHOTO)
Observable<HPSPhotoResponse>
addPhoto(@Part("file") MultipartBody.Part files);
does't問題。結果は常に同じです "Multipart request:必須MultipartFileパラメータ 'file'は存在しません" - サーバレスポンス。
私は、サーバー上のSpringはうまくいかないと思っていますが、私はSwift(iOS)で同等のコードを実行しています。ここでサーバーはこの 'ファイル'部分を見ます。
Alamofire.upload(method, endpoint, headers: headers,
multipartFormData: { multipartFormData in
multipartFormData.appendBodyPart(fileURL: self.filePath!, name: "file")
}
今、私はそれがAndroidでRetrofitで動作します。 しかし、Retrofitリクエストのログを調べても、実際にはログに「ファイル」テキストが表示されません。
どうしたのですか?
うん!私がすることができる最大の感謝:)!それは助けになった。 ...主な問題は正確に "retrofit:2.0.0"の代わりに "retrofit:2.0.1"に改造されたものです。このバージョンでは、注釈「MultipartBody.Part」の何かが間違っています 私はそれを変更して、iOSとまったく同じ働きをしています。再度、感謝します。 –
パラメータを使用してイメージを送信する方法?パラメータを指定してイメージを追加すると、java.lang.IllegalArgumentException:MultipartBody.Partを使用する@Partパラメータに注釈に部品名を含めないでください – Suman
@Suman月間Retrofitでテストしていませんしかし、あなたは@Part( "description")RequestBody description'を上記の私のコードとして試してみるか、http://square.github.io/retrofit/ – BNK