java调接口传值_关于调用第三方接口时传递参数是File类型的解决方式
正版編程與類型系統講解基于的應用
77.35元
(需用券)
去購買 >
最近項目,需要我調用另一個項目中的某個接口,接口的入參為File類型,要拿到此接口返回的數據@ApiOperation("簡歷解析入庫")
@ApiParam(name = "files", value = "files", required = true)
@RequestMapping(value = "/resumeAnalysis", method = RequestMethod.POST, consumes = {"multipart/*"}, headers = {"content-type=multipart/form-data"})
public ResultBody resumeAnalysis(@RequestParam("files") MultipartFile[] files){
List jsonObject = sdkService.testResumeParser(files);
return ResultBody.success(jsonObject);
}
根據代碼可以看出,headers = {"content-type=multipart/form-data"}),要通過form-data方式來傳數據。方法如下public static void main(String arg[]) {
String sResponse="";
try {
String url = "http://127.0.0.1:8080/rms/resume/resumeAnalysis";
String filePath="E:簡歷1.txt";
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost uploadFile = new HttpPost(url);
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
File files = new File(filePath);
// 把文件加到HTTP的post請求中
builder.addBinaryBody("files",new FileInputStream(files),ContentType.APPLICATION_OCTET_STREAM,files.getName());
HttpEntity multipart = builder.build();
uploadFile.setEntity(multipart);
CloseableHttpResponse response = httpClient.execute(uploadFile);
HttpEntity responseEntity = response.getEntity();
sResponse = EntityUtils.toString(responseEntity, "UTF-8");
}catch (Exception e){
e.printStackTrace();
}
System.out.println(sResponse);
}
因為我這是寫的main方法,所以參數還有url我都是自己定義了,正常情況下,當前端上傳某個文件時,我們需要先把文件解析,保存到本地,然后才可以使用此main方法執行下去。
強調一點,使用此方法時,傳過去文件名可能會出現亂碼,導致解析數據的時候失敗,此時需要在:MultipartEntityBuilder builder = MultipartEntityBuilder.create()后面加上.setMode(HttpMultipartMode.RFC6532),完整的為:MultipartEntityBuilder builder = MultipartEntityBuilder.create().setMode(HttpMultipartMode.RFC6532);
新手上路,歡迎大佬指導。
java 11官方入門(第8版)教材
79.84元
包郵
(需用券)
去購買 >
總結
以上是生活随笔為你收集整理的java调接口传值_关于调用第三方接口时传递参数是File类型的解决方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 成为电脑小达人如何成为电脑达人
- 下一篇: java空间租用_java影片租赁平台