本处使用的是Httpclient4.0.1
客户端:
public static int postXml(String path,String url){ DefaultHttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost(url); MultipartEntity multipartEntity = new MultipartEntity(); FileBody cbFileBody = new FileBody(new File(path)); multipartEntity.addPart("file", cbFileBody); post.setEntity(multipartEntity); int statusCode = -1; try { HttpResponse response = client.execute(post); statusCode = response.getStatusLine().getStatusCode(); } catch (Throwable e) { //记录异常日志 SolrErrorCategory.error("xml文件post到solr服务器:"+url+" 创建索引出现异常错误!异常信息:"+e.getMessage(),e); } return statusCode; }
服务端:
@RequestMapping(value="upload",method=RequestMethod.POST) public void upload(HttpServletRequest request, HttpServletResponse response){ try{ long start = System.currentTimeMillis(); CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext()); //判断 request 是否有文件上传,即多部分请求 if(multipartResolver.isMultipart(request)){ //转换成多部分request MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request; //取得request中的所有文件名 Iterator<String> iter = multiRequest.getFileNames(); while(iter.hasNext()){ //取得上传文件 MultipartFile file = multiRequest.getFile(iter.next()); if(file != null){ File localFile = new File("D:\\"+file.getOriginalFilename()); file.transferTo(localFile); } //记录上传该文件后的时间 String spent = PerformanceUtil.spentTime(start); } } }catch(Throwable e){ log.error("接收solrcloud的XML文件失败,失败原因:",e); } }