java httpclient 文件上传_Java使用HttpClient上传文件
Java使用HttpClient上传文件
Java可以使用HttpClient发送Http请求、上传文件等,非常的方便
Maven
org.apache.httpcomponents
httpclient
4.5.3
org.apache.httpcomponents
httpmime
4.5.3
上传代码1:
public static void upload2() throwsClientProtocolException, IOException{
CloseableHttpClient httpClient=HttpClientBuilder.create().build();
CloseableHttpResponse httpResponse= null;
RequestConfig requestConfig= RequestConfig.custom().setConnectTimeout(200000).setSocketTimeout(200000000).build();
HttpPost httpPost= new HttpPost("http://localhost:8080/WEY.WebApp/auth/right/right/receiveFile.html");
httpPost.setConfig(requestConfig);
MultipartEntityBuilder multipartEntityBuilder=MultipartEntityBuilder.create();//multipartEntityBuilder.setCharset(Charset.forName("UTF-8"));//File file = new File("F:\\Ken\\1.PNG");//FileBody bin = new FileBody(file);
File file= new File("F:\\Ken\\abc.pdf");//multipartEntityBuilder.addBinaryBody("file", file,ContentType.create("image/png"),"abc.pdf");//当设置了setSocketTimeout参数后,以下代码上传PDF不能成功,将setSocketTimeout参数去掉后此可以上传成功。上传图片则没有个限制//multipartEntityBuilder.addBinaryBody("file",file,ContentType.create("application/octet-stream"),"abd.pdf");
multipartEntityBuilder.addBinaryBody("file",file);//multipartEntityBuilder.addPart("comment", new StringBody("This is comment", ContentType.TEXT_PLAIN));
multipartEntityBuilder.addTextBody("comment", "this is comment");
HttpEntity httpEntity=multipartEntityBuilder.build();
httpPost.setEntity(httpEntity);
httpResponse=httpClient.execute(httpPost);
HttpEntity responseEntity=httpResponse.getEntity();int statusCode=httpResponse.getStatusLine().getStatusCode();if(statusCode == 200){
BufferedReader reader= new BufferedReader(newInputStreamReader(responseEntity.getContent()));
StringBuffer buffer= newStringBuffer();
String str= "";while(!StringUtil.isRealEmpty(str =reader.readLine())) {
buffer.append(str);
}
System.out.println(buffer.toString());
}
httpClient.close();if(httpResponse!=null){
httpResponse.close();
}
}
上传代码2:
public static voidupload() {
CloseableHttpClient httpclient=HttpClients.createDefault();//CloseableHttpClient httpclient = HttpClientBuilder.create().build();
try{
HttpPost httppost= new HttpPost("http://localhost:8080/WEY.WebApp/auth/right/right/receiveFile.html");
RequestConfig requestConfig= RequestConfig.custom().setConnectTimeout(200000).setSocketTimeout(200000).build();
httppost.setConfig(requestConfig);
FileBody bin= new FileBody(new File("F:\\Ken\\abc.pdf"));
StringBody comment= new StringBody("This is comment", ContentType.TEXT_PLAIN);
HttpEntity reqEntity= MultipartEntityBuilder.create().addPart("file", bin).addPart("comment", comment).build();
httppost.setEntity(reqEntity);
System.out.println("executing request " +httppost.getRequestLine());
CloseableHttpResponse response=httpclient.execute(httppost);try{
System.out.println(response.getStatusLine());
HttpEntity resEntity=response.getEntity();if (resEntity != null) {
String responseEntityStr=EntityUtils.toString(response.getEntity());
System.out.println(responseEntityStr);
System.out.println("Response content length: " +resEntity.getContentLength());
}
EntityUtils.consume(resEntity);
}finally{
response.close();
}
}catch(ClientProtocolException e) {
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}finally{try{
httpclient.close();
}catch(IOException e) {
e.printStackTrace();
}
}
}
普通POST请求
public String post() throwsClientProtocolException, IOException{
CloseableHttpClient httpClient=HttpClientBuilder.create().build();
CloseableHttpResponse httpResponse= null;
HttpPost httpPost= new HttpPost("http://localhost:8080/WEY.WebApp/auth/right/right/receivePost.html");
RequestConfig requestConfig= RequestConfig.custom().setConnectTimeout(20000).setSocketTimeout(22000).build();
httpPost.setConfig(requestConfig);
List params = new ArrayList();
params.add(new BasicNameValuePair("user.loginId", "Lin"));
params.add(new BasicNameValuePair("user.employeeName","令狐冲"));
UrlEncodedFormEntity entity= new UrlEncodedFormEntity(params,Charset.forName("UTF-8"));
httpPost.setEntity(entity);
httpResponse=httpClient.execute(httpPost);
HttpEntity responseEntity=httpResponse.getEntity();if(responseEntity!=null){
String content= EntityUtils.toString(responseEntity,"UTF-8");
System.out.println(content);
}if(httpResponse!=null){
httpResponse.close();
}if(httpClient!=null){
httpClient.close();
}return null;
}
分类: JAVA
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)