C#-访问Java文件上传API
遇到的坑和返回结果如下:
Bad Request
StatusCode: 400, ReasonPhrase: 'Bad Request', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:{
Connection: close
Access-Control-Allow-Headers: Content-Type,Origin,Accept
Access-Control-Allow-Methods: HEAD,GET,POST,PUT,DELETE,OPTIONS
Access-Control-Allow-Origin: *
Access-Control-Max-Age: 120
Keep-Alive: timeout=38
Date: Thu, 07 Jun 2018 08:55:02 GMT
Content-Length: 5
Content-Type: text/plain; charset=UTF-8
}
error
解决后正确示例:
c#:
private async void DoPostFile2(string sFile)
{
HttpClient client = new HttpClient();
MultipartFormDataContent form = new MultipartFormDataContent();
FileInfo file = new FileInfo(sFile);
form.Add(new StreamContent(file.OpenRead()), "picFile", file.Name);
HttpResponseMessage response = await client.PostAsync("http://192.168.1.152:8091/pic/uploadPicture", form);
Console.WriteLine(response.StatusCode);
Console.WriteLine(response.ReasonPhrase);
Console.WriteLine(response.ToString());
Console.WriteLine(Encoding.ASCII.GetString(await response.Content.ReadAsByteArrayAsync()));
}
Java API:(Springboot)
@ApiOperation(value = "上传图片" ,notes = "上传功能",httpMethod = "POST")
@RequestMapping(value = "/uploadPicture",method = RequestMethod.POST)
@ResponseBody
public String uploadPicture(@RequestParam(value="picFile")MultipartFile picFile,
HttpServletRequest request){
String result = ConstUtils.RESULT_FAILED;
if(picFile != null && !picFile.isEmpty())
{
try {
// 略
}catch (Exception e){
e.printStackTrace();
}
}
return result;
}
原因:
