日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用restTemplate上传图片

發布時間:2024/3/7 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用restTemplate上传图片 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

網上有很多restTemplate上傳圖片的例子,但是我遇到的坑,卻沒有解決辦法,于是在墻外面找到了解決方案,現分享如下

上送給微信的請求報文必須如上(事實證明少一個filename微信都提示你file不能為空)這個提示誤導兩個小時排查問題

代碼摘要如下:

private ResultModel httpRequestWechatUploadImage(String url,String head,String body,String imageUrl,String imageName){try{//構造請求頭HttpHeaders headers = new HttpHeaders();headers.add("Authorization", head);headers.setContentType(MediaType.MULTIPART_FORM_DATA);ResponseEntity<String> responseEntity;//構建第一個boundaryHttpHeaders metaHeader = new HttpHeaders();metaHeader.setContentType(MediaType.APPLICATION_JSON);HttpEntity<String> jsonHttpEntity = new HttpEntity<>(body, metaHeader);//構建第二個boundaryHttpHeaders pictureHeader = new HttpHeaders();pictureHeader.setContentType(MediaType.IMAGE_JPEG);//不設置此contentDisposition則會報file必填pictureHeader.setContentDispositionFormData("file",imageName);ByteArrayResource bar = new ByteArrayResource(CommonUtils.getByteFromURL(imageUrl));HttpEntity<ByteArrayResource> picturePart = new HttpEntity<>(bar, pictureHeader);//組成bodyMultiValueMap<String, Object> multipartRequest = new LinkedMultiValueMap<>();multipartRequest.add("meta", jsonHttpEntity);multipartRequest.add("file", picturePart);//放body 和 headHttpEntity entity = new HttpEntity(multipartRequest, headers);//請求微信responseEntity = restTemplate().exchange(url,HttpMethod.POST,entity,String.class);if(responseEntity.getStatusCode() == HttpStatus.OK){return new ResultModel(true, responseEntity.getBody());}else{return new ResultModel(false, responseEntity.toString());}} catch(RestClientResponseException ex){System.out.println("rest client exception,body"+ex.getResponseBodyAsString());ex.printStackTrace();return new ResultModel(false,ex.getResponseBodyAsString());} catch (Exception e){System.out.println("exception "+e.getMessage());e.printStackTrace();}return new ResultModel(false,"request wechat system error");}

?

總結

以上是生活随笔為你收集整理的使用restTemplate上传图片的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。