アンドロイド用のspringを使用してアンドロイドアプリで正常にデータを取得/投稿しています。今、私はマルチパートフォームの投稿要求をしなければならないが、私はそれが私が望むように働くことができなかった。アンドロイド用のスプリング付き圧縮jpegバイト配列のマルチパート投稿リクエスト
ユースケース: 1.ギャラリーから写真を選択 ファイルソース 3.圧縮ByteArrayOutputStream 4.パスバイト配列(ByteArrayOutputStream.toByteArrayにビットマップを使用してビットマップへ2.ロード、それを() )をサーバーに送信します。アプリケーション/ octet-streamの:写真をアップロードするためのサーバのエンドポイントのみが次のMIMEタイプを持つMultipartFileは(は、MIMEタイプを受け入れていない、それを注意してください受け入れ
(私はJPEGでないアプリケーション/オクテットストリームとしてこれを送信する必要があります) ):私はsample codeを使用してみましたが、これまでのところ成功してきた
GIF("image/gif")
PNG("image/png", "image/x-png")
JPG("image/jpeg", "image/jpg", "image/pjpeg")
BMP("image/bmp")
。 org.springframework.web.bind.MissingServletRequest ParameterException:私は次のエラーを取得する次のコードで
必要MultipartFileパラメータ「ファイル」は、この問題に存在
ヘルプ大幅に高く評価されていません。ありがとう、良い仕事を続けてください。
は、ここに私のコードです:私は、問題の同じ種類にぶつかってきた
bitmap = BitmapFactory.decodeFile("/mnt/sdcard/DCIM/Camera/20130205_162546.jpg");
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.JPEG, 60, bos);
byte[] data = bos.toByteArray();
// populate the data to post
MultiValueMap<String, Object> formData = new LinkedMultiValueMap<String, Object>();
formData.add("caption", "Test Caption");
formData.add("file", data);
// The URL for making the POST request
final String url = "http://api.example.com/imageUpload?oauth_token=XXXXXX";
HttpHeaders requestHeaders = new HttpHeaders();
// Sending multipart/form-data
requestHeaders.setContentType(MediaType.MULTIPART_FORM_DATA);
// Populate the MultiValueMap being serialized and headers in an HttpEntity object to use for the request
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<MultiValueMap<String, Object>>(formData, requestHeaders);
// Create a new RestTemplate instance
RestTemplate restTemplate = new RestTemplate(true);
// // Set a custom message converter that supports the application/json media type
// final GsonHttpMessageConverter gsonMessageConverter = new GsonHttpMessageConverter();
// gsonMessageConverter.setSupportedMediaTypes(Collections.singletonList(MediaType.APPLICATION_JSON));
// final ByteArrayHttpMessageConverter byteArrayMessageConverter = new ByteArrayHttpMessageConverter();
// byteArrayMessageConverter.setSupportedMediaTypes(Collections.singletonList(MediaType.IMAGE_JPEG));
// final FormHttpMessageConverter formMessageConverter = new FormHttpMessageConverter();
// formMessageConverter.setSupportedMediaTypes(Collections.singletonList(MediaType.IMAGE_JPEG));
// restTemplate.getMessageConverters().addAll(Arrays.asList(gsonMessageConverter, byteArrayMessageConverter, formMessageConverter));
// Make the network request, posting the message, expecting a String in response from the server
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class);
// Return the response body to display to the user
Log.i(TAG, "**** response.body : " + response.getBody());