Java代码中利用httpClient发送post、get请求

本文介绍如何使用Java的HttpClient库实现GET和POST请求。包括创建HttpClient实例、构造请求、处理响应等步骤。示例代码展示了如何读取服务器返回的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


怎样在Java代码中利用httpClient发送post、get请求
1、get请求


发出http请求:
HttpClientUtils.getValidataImage(请求的URL+请求参数,response)


创建执行请求的httpClient:
CloseableHttpClient httpClient = HttpClients.createDefault();


发送get请求
HttpGet request = new HttpGet(url);
CloseableHttpResponse response = httpClient.execute(request);


请求发送成功,并得到响应
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
/**读取服务器返回过来的json字符串数据**/
HttpEntity resEntity = response.getEntity();
resEntity = response.getEntity();
InputStream inputStream = resEntity.getContent();
byte[] buff = new byte[1024];
int length = 0;
while ((length = inputStream.read(buff)) != -1) {
httpServletResponse.getOutputStream().write(buff, 0, length);
}  
EntityUtils.consume(resEntity);
response.close();
} else {
logger.error("get请求提交失败:" + url);
}


2、post请求


发出http请求:
String result = HttpClientUtils.httpUpload(请求URL, 请求参数, 上传文件);


创建执行请求的httpClient:
CloseableHttpClient httpClient = HttpClients.createDefault();
创建builder
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
设置浏览器兼容模式
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);//设置浏览器兼容模式


创建httppost
HttpPost httppost = new HttpPost(url);


处理上传附件(封装文件)
for (int i = 0; i < files.size(); i++) {
File file = files.get(i).getFile();
if(file.isFile()){
fileUrl.add(file.getPath());
}
String uploadFilePath = ImageZipUtil.zipImageFile(file, new File(StaticVariable.UPLOADPATH+"\\"+file.getName()), 425, 638, 0.7f);
File uploadFile = new File(uploadFilePath);
if(uploadFile.isFile()){
fileUrl.add(uploadFilePath);
builder.addBinaryBody("alterpic_picname"+(num), uploadFile);//file1为请求后台的File upload;属性     
num++;
}
}


处理请求参数(封装普通参数)
Set<String> keySet = params.keySet();  
for(String key : keySet) { 
String value = params.get(key);
builder.addTextBody(key, value);//filename1为请求后台的普通参数;属性
}
生产httppost请求
HttpEntity entity = builder.build();// 生成 HTTP POST 实体  
httppost.setEntity(entity);  设置实体


执行httppost请求
HttpResponse response = httpClient.execute(httppost);  


处理返回信息
                 
int statusCode = response.getStatusLine().getStatusCode();   
if(statusCode == HttpStatus.SC_OK){  
 
try {
/**读取服务器返回过来的json字符串数据**/
jsonResult = EntityUtils.toString(response.getEntity());
for (String string : fileUrl) {
CommUtil.deleteFile(string);
}
} catch (Exception e) {
logger.error("post请求提交失败:" + url, e);
}
}  
 
} catch (ParseException e) {  
// TODO Auto-generated catch block  
logger.error("post请求提交失败:" + url, e);
}finally {  
try {   
httpClient.close();
} catch (Exception ignore) {  
logger.error("", ignore);
}  
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

powerfuler

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值