java httpclient 模拟表单发送数据
@ApiOperation(value = "上传文件", notes = "上传文件test")
@RequestMapping(value = "register", method = RequestMethod.POST,produces = "application/json;charset=utf-8")
@ResponseBody
public String register( HttpServletRequest request,
@ApiParam(value = "storephoto", required = true)@RequestParam(value="storephoto",required=false) MultipartFile storephoto,
@RequestParam String agentName,
@RequestParam String taxNumber,
@RequestParam String uId,
@RequestParam String cellPhone,
@RequestParam String payAccount,
@RequestParam String contacts,
@RequestParam String province,
@RequestParam String city,
@RequestParam String district,
@RequestParam String address,
@RequestParam String storeName,
@RequestParam String customerId
) throws IOException {
HttpClient httpclient = null;
HttpResponse response = null;
MultipartEntityBuilder entityBuilder = MultipartEntityBuilder.create();
String url="http://118.122.120.53:30084/v1/register/add";
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
MultipartFile file = storephoto; // 通过参数名获取指定文件
if(file==null){
return "请上传文件";
}
File f = null; //转化成实体file
try {
f=File.createTempFile("tmp", null);
file.transferTo(f);f.deleteOnExit();
} catch (IOException e) {
e.printStackTrace();
}
//签名
Map<String, String> parameterMap=new HashMap<>();
String sign = "";
DZSignUtils md5 = new DZSignUtils();
Enumeration paramNames = request.getParameterNames();
while (paramNames.hasMoreElements()) {
String paramName = (String) paramNames.nextElement();
String[] paramValues = request.getParameterValues(paramName);
if (paramValues.length == 1) {
String paramValue = paramValues[0];
if (paramValue.length() != 0) {
parameterMap.put(paramName, paramValue);
}
}
}
String linkFileName = md5.linkFileName(parameterMap);
System.out.println(md5.filterParameter(parameterMap));
System.out.println("-----------加密后");
sign = md5.sign2(parameterMap);
parameterMap.put("sign", sign);
try{
httpclient = new DefaultHttpClient();// 看作是浏览器
HttpPost httppost = new HttpPost(url);
FileBody fileBody = new FileBody(f);
entityBuilder.addPart("storephoto", fileBody);
// 字符串参数
if(parameterMap!=null&&!parameterMap.isEmpty()){
for(String key : parameterMap.keySet()){
StringBody stringBody = new StringBody(parameterMap.get(key), ContentType.create("text/plain", "UTF-8"));
// <input type="text" name="userName" value="userName">
entityBuilder.addPart(key, stringBody);
}
}
HttpEntity httpEntity = entityBuilder.build();
httppost.setEntity(httpEntity);
CloseableHttpResponse httpResponse = (CloseableHttpResponse) httpclient.execute(httppost);
int responseCode = httpResponse.getStatusLine().getStatusCode();
System.out.println("【状态码:"+responseCode+"】");
InputStream in = httpResponse.getEntity().getContent();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(in,"utf-8"));
StringBuffer sb = new StringBuffer();
String readLine = null;
while((readLine=bufferedReader.readLine())!=null){
sb.append(readLine);
}
System.out.println("返回报文:"+sb.toString());
in.close();
bufferedReader.close();
return sb.toString();
} catch(Exception e){
e.printStackTrace();
}
return null;
}
网友评论