本文档主要介绍了一个Java编程中的HTTP接口调用示例,以及如何处理返回的JSON数据。在IT项目开发中,与远程服务器进行通信通常涉及HTTP请求,如GET、POST等。这里提供的`HttpUtil`抽象类展示了如何使用Apache HttpClient库进行HTTP POST请求,并将参数以键值对的形式发送到指定的URL。 首先,我们看到`HttpUtil`类定义了`post`方法,它接受一个URL字符串和一个NameValuePairList(一个键值对的列表),这表明该方法用于执行POST请求。参数`url`是HTTP请求的目标地址,而`list`包含了要发送到服务器的数据,例如登录凭证或其他业务逻辑所需的数据。 在代码片段中,通过创建`HttpClient`实例,调用`HttpPost`方法来构造请求,然后设置请求体为键值对列表转换成的`UrlEncodedFormEntity`。这个步骤遵循HTTP协议,POST请求通常用于向服务器发送数据,如表单提交。 发送请求后,返回的结果可能是JSON格式的数据,因为题目提到了JSON解析。在实际操作中,为了解析返回的JSON,开发者需要处理以下步骤: 1. 连接管理:使用`HttpURLConnection`或`HttpClient`获取HTTP响应。 2. 获取响应:根据请求的响应状态码判断请求是否成功,如检查200表示成功。 3. 读取响应体:使用`IOUtils`或`EntityUtils`等工具读取响应体内容。 4. 解析JSON:根据使用的库不同,可以选择不同的方式解析JSON: - 如果使用了`Apache Commons Lang3`的`StringUtils`或`org.json`库,可以利用其提供的`parse`方法将JSON字符串转化为Java对象,如JSONObject或JSONArray。 - 如果没有特定库,可以使用字符串处理函数和正则表达式解析JSON,但这种方式可能效率较低且易出错。 - `EVAL`方法虽然可以实现动态解析,但在现代编程中较少推荐,因为它可能存在安全风险。 - 使用专门的JSON解析库,如Jackson、Gson或org.json,它们提供了更强大且类型安全的API来解析JSON。 调用HTTP接口的核心在于发送请求、接收响应并解析返回数据。在这个例子中,`HttpUtil`类为这一过程提供了一个基础框架,但实际应用中可能需要根据具体需求选择合适的JSON解析方法,确保数据处理的正确性和效率。此外,注意检查API文档,利用官方提供的解析工具或库,可以避免潜在的兼容性问题。
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import com.lvxh.bean.NameValuePairList;
/**
* Http工具类
*
* @author lvxh
* @since V100R001C02
* @version V100R001C02
*/
public abstract class HttpUtil {
/**
* 用法 String url="http://192.168.2.181:8080/sic/app/login.action"; Map
* <String,String>map = new HashMap<>(); map.put("domainCode", "SA60");
* System.out.println(sendSms(url,map));
* d
* @param url
* String 请求地址
*
* @param list
* 键值对列表
*
* @return String 返回结果集
*/
public static String post(String url, NameValuePairList list) {
HttpClient httpclient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(url);
String strResult = "";
try {
httpPost.addHeader("Content-type", "application/x-www-form-urlencoded");
httpPost.setEntity(new UrlEncodedFormEntity(list.getList(), "UTF-8"));
HttpResponse response = httpclient.execute(httpPost);
if (response.getStatusLine().getStatusCode() == 200) {
strResult = EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8);
} else {
strResult = String.valueOf(response.getStatusLine().getStatusCode());
}
} catch (Exception e) {
e.printStackTrace();
}
return strResult;
}
剩余5页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- WebLogic集群配置与管理实战指南
- AIX5.3上安装Weblogic 9.2详细步骤
- 面向对象编程模拟试题详解与解析
- Flex+FMS2.0中文教程:开发流媒体应用的实践指南
- PID调节深入解析:从入门到精通
- 数字水印技术:保护版权的新防线
- 8位数码管显示24小时制数字电子钟程序设计
- Mhdd免费版详细使用教程:硬盘检测与坏道屏蔽
- 操作系统期末复习指南:进程、线程与系统调用详解
- Cognos8性能优化指南:软件参数与报表设计调优
- Cognos8开发入门:从Transformer到ReportStudio
- Cisco 6509交换机配置全面指南
- C#入门:XML基础教程与实例解析
- Matlab振动分析详解:从单自由度到6自由度模型
- Eclipse JDT中的ASTParser详解与核心类介绍
- Java程序员必备资源网站大全