Java实现http客户端请求

简介: Java实现http客户端请求

依赖配置pom.xml

<!-- httpclient -->
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.5</version>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.70</version>
</dependency>

Get请求

/**
 * 抓取指定网页,返回文本信息。
 * @param url 网页地址
 * @param code 指定网页解析编码
 * @return 网页文本
 * @throws IOException
 * @throws ClientProtocolException
 */
public static String httpGet(String url, String code) throws Exception {
    RequestConfig config = RequestConfig.custom()
            .setConnectTimeout(10000)
            .setSocketTimeout(10000)
            .setConnectionRequestTimeout(10000)
            .build();
    HttpClient client = HttpClients.createDefault();
    HttpGet get = new HttpGet(url);
    get.setConfig(config);
    HttpResponse response = client.execute(get);
    return EntityUtils.toString(response.getEntity(), code);
}

/**
 * 抓取指定网页,返回文本信息。默认utf-8编码方式解析文本。
 * @param url 网页地址
 * @return 网页文本
 * @throws IOException
 * @throws ClientProtocolException
 */
public static String httpGet(String url) throws Exception {
    return httpGet(url, "utf-8");
}

Post请求

/**
 * 发送HTTP请求,并设置post参数。
 * @param ur 请求地址
 * @param data 参数键值对
 * @return 获取响应
 * @throws ClientProtocolException
 * @throws IOException
 */
public static String httpPost(String url, Map<String, Object> data) throws ClientProtocolException, IOException {
    RequestConfig config = RequestConfig.custom()
            .setConnectTimeout(10000)
            .setSocketTimeout(10000)
            .setConnectionRequestTimeout(10000).build();
    HttpClient client = HttpClients.createDefault();
    HttpPost post = new HttpPost(url);
    post.setConfig(config);
    post.setHeader("Content-Type", "application/json;charset=UTF-8");
    post.setEntity(new StringEntity(JSONObject.toJSONString(data)));
    HttpResponse response = client.execute(post);
    return EntityUtils.toString(response.getEntity(), "utf-8");
}
相关文章
|
11天前
|
缓存 应用服务中间件 Apache
HTTP 范围Range请求
HTTP范围请求是一种强大的技术,允许客户端请求资源的部分内容,提高了传输效率和用户体验。通过正确配置服务器和实现范围请求,可以在视频流、断点续传下载等场景中发挥重要作用。希望本文提供的详细介绍和示例代码能帮助您更好地理解和应用这一技术。
53 19
|
1月前
|
JSON Java 数据格式
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
88 25
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
|
19天前
|
JSON JavaScript 前端开发
什么是HTTP POST请求?初学者指南与示范
HTTP POST请求是一种常用的HTTP方法,主要用于向服务器发送数据。通过合理设置请求头和请求主体,可以实现数据的可靠传输。无论是在客户端使用JavaScript,还是在服务器端使用Node.js,理解和掌握POST请求的工作原理和应用场景,对于Web开发至关重要。
170 18
|
18天前
|
JSON 数据格式
.net HTTP请求类封装
`HttpRequestHelper` 是一个用于简化 HTTP 请求的辅助类,支持发送 GET 和 POST 请求。它使用 `HttpClient` 发起请求,并通过 `Newtonsoft.Json` 处理 JSON 数据。示例展示了如何使用该类发送请求并处理响应。注意事项包括:简单的错误处理、需安装 `Newtonsoft.Json` 依赖,以及建议重用 `HttpClient` 实例以优化性能。
62 2
|
28天前
|
安全 Java API
java如何请求接口然后终止某个线程
通过本文的介绍,您应该能够理解如何在Java中请求接口并根据返回结果终止某个线程。合理使用标志位或 `interrupt`方法可以确保线程的安全终止,而处理好网络请求中的各种异常情况,可以提高程序的稳定性和可靠性。
48 6
|
1月前
|
Web App开发 大数据 应用服务中间件
什么是 HTTP Range请求(范围请求)
HTTP Range 请求是一种非常有用的 HTTP 功能,允许客户端请求资源的特定部分,从而提高传输效率和用户体验。通过合理使用 Range 请求,可以实现断点续传、视频流播放和按需加载等功能。了解并掌握 HTTP Range 请求的工作原理和应用场景,对开发高效的网络应用至关重要。
109 15
|
1月前
|
数据采集 JSON 测试技术
Grequests,非常 Nice 的 Python 异步 HTTP 请求神器
在Python开发中,处理HTTP请求至关重要。`grequests`库基于`requests`,支持异步请求,通过`gevent`实现并发,提高性能。本文介绍了`grequests`的安装、基本与高级功能,如GET/POST请求、并发控制等,并探讨其在实际项目中的应用。
52 3
|
1月前
|
Web App开发 网络安全 数据安全/隐私保护
Lua中实现HTTP请求的User-Agent自定义
Lua中实现HTTP请求的User-Agent自定义
|
Java Serverless Maven
玩转阿里云函数计算(一)----Java Http 触发器极速迁移传统 Spring 应用
前言 阿里云函数计算 Function Compute(FC),旨在帮助用户采用弹性伸缩、动态分配资源的方式,来执行业务函数。让用户无需购买部署服务器,无需考虑业务负载,就能快速搭建可处理高并发的后台服务。
22715 1
|
Java Serverless Maven
玩转阿里云函数计算(二)----Java Http 触发器极速迁移传统 SpringBoot 应用
前言 阿里云函数计算 Function Compute(FC) 本文介绍如何使用 Java HTTP 触发器来快速迁移 SpringBoot 应用 demo-springboot-hello,并使用函数计算提供的 fun 工具 来快速部署和测试。
7081 0