java 定义接口 xml_Java接口对接二(URL方式之xml,json,form)
HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。
在这里先介绍 HttpClient的xml ,json和form表单格式的调用;对不同格式的可进行封装调用
public class HttpUtils {
private static Logger Log = LoggerFactory.getLogger(HttpUtils.class);
// 1.使用get方式发送报文
public static String getData(String url) {
CloseableHttpClient client = HttpClients.createDefault();
HttpGet get = new HttpGet(url);
try{
CloseableHttpResponse response = client.execute(get);
int statusCode = response.getStatusLine().getStatusCode();
if(statusCode==200){
Log.info("远程调用成功.line={}",response.getStatusLine());
HttpEntity entity = response.getEntity();
return EntityUtils.toString(entity,"UTF-8");
}
return null;
}catch (IOException e){
Log.error("远程调用失败.e={}",e.getMessage());
}
return null;
}
public static String post(String type,String url,String data){
String result = "";
switch (type){
case "xml":
result = postData(url,data,ContentType.APPLICATION_XML.toString());
break;
case "json":
result = postData(url,data,ContentType.APPLICATION_JSON.toString());
break;
default:
break;
}
return result;
}
// 使用POST方法发送XML或者json数据
public static String postData(String url, String xmlData,String contentType){
CloseableHttpClient client = HttpClients.createDefault();
HttpPost post = new HttpPost(url);
post.addHeader("Content-type",contentType);
try{
StringEntity entity = new StringEntity(xmlData);
post.setEntity(entity);
CloseableHttpResponse response = client.execute(post);
int statusCode = response.getStatusLine().getStatusCode();
if(statusCode==200){
Log.info("远程调用成功.line={}",response.getStatusLine());
HttpEntity responseEntity = response.getEntity();
return EntityUtils.toString(responseEntity);
}
}catch (IOException e){
Log.error("远程调用失败.e={}",e.getMessage());
}
return null;
}
// 使用POST方法发送FORM表单数据
public static String postForm(String url, Map map){
CloseableHttpClient client = HttpClients.createDefault();
HttpPost post = new HttpPost(url);
post.addHeader("Content-type",ContentType.APPLICATION_FORM_URLENCODED.toString());
try{
List list = new ArrayList<>();
for(Map.Entry entry : map.entrySet()){
list.add(new BasicNameValuePair(entry.getKey(),entry.getValue()));
}
UrlEncodedFormEntity urlEncodedFormEntity = new UrlEncodedFormEntity(list);
post.setEntity(urlEncodedFormEntity);
CloseableHttpResponse response = client.execute(post);
int statusCode = response.getStatusLine().getStatusCode();
if(statusCode==200){
Log.info("远程调用成功.line={}",response.getStatusLine());
HttpEntity responseEntity = response.getEntity();
return EntityUtils.toString(responseEntity);
}
}catch (IOException e){
Log.error("远程调用失败.e={}",e.getMessage());
}
return null;
}
}
java 定义接口 xml_Java接口对接二(URL方式之xml,json,form)相关推荐
- java定义private_java9开始——接口中可以定义private私有方法
在传统的Java编程中,被广为人知的一个知识点是:java Interface接口中不能定义private私有方法.只允许我们定义public访问权限的方法.抽象方法或静态方法.但是从Java 9 开 ...
- java定义一个动物接口_Java 动物声音“模拟器”(用接口实现)
(1)编写接口Animal (Animal.java) public interface Animal{ public abstract void cry(); public abstract Str ...
- java定义一个动物接口,Java 动物声音“模拟器”(用接口实现)
(1)编写接口Animal (Animal.java) public interface Animal{ public abstract void cry(); public abstract Str ...
- java 开发与快递鸟对接的推送接口
java 开发与快递鸟对接的推送接口 最近公司需要跟快递鸟进行对接,使用快递鸟的API来查询商城的物流信息,在此记录一下,自己跟快递鸟对接的过程吧,如果有那些不对的地方请指出,觉得可以的话转载记得表明 ...
- java private 接口_java接口中 定义 private 私有方法
在传统的Java编程中,被广为人知的一个知识点是:java Interface接口中不能定义private私有方法.只允许我们定义public访问权限的方法.抽象方法或静态方法.但是从Java 9 开 ...
- java定义接口区分飞机和汽车_JAVA菜鸟入门篇 - 抽象类、接口 (十九)
一.抽象类 抽象类(abstract class):使用了abstract关键字所修饰的类叫做抽象类. 为什么需要抽象类?如何定义抽象类? 是一种模板模式.抽象类为所有子类提供一个通用模板,子类可以再 ...
- Java接口 详解(二)
上一篇Java接口 详解(一)讲到了接口的基本概念.接口的使用和接口的实际应用(标准定义).我们接着来讲. 一.接口的应用-工厂设计模式(Factory) 我们先看一个范例: package com. ...
- Java基础学习第十二讲:Java面向对象---抽象类和接口
Java面向对象-抽象类和接口 一.抽象类 抽象的定义: 我们在日常生活中,经常通过总结一些事物的共性来对事物进行分类,这种共性可能是一些相同的属性,也可能是一些相同的动作.通过总结,我们能够清晰的划 ...
- 在Java中是如何定义和声明接口的?
java技术需要学习的内容有很多,本期小编整理的教程资料就是关于"在Java中是如何定义和声明接口的?"的内容,希望下面的介绍能够给大家带来帮助. 如果一个抽象类的所有方法都是抽象 ...
- java定义接口_一文知道Java中接口的定义
使用interface来定义一个接口.接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成.定义接口的基本格式如下: 方法:接口中的方法只有定义而没有被实现. ...
最新文章
- python appium 并行多设备_学会使用python启动多个appium server,然后获取多台设备的driver...
- 【PAT (Advanced Level) Practice】1002 A+B for Polynomials (25 分)
- 解析TOMCAT框架 .
- java导出excel_如何导出你和女票的微信聊天记录
- JavaScript基础12-day14【DOM查询(获取元素节点、获取元素节点的子节点)、全选练习、DOM增删改、DOM添加删除记录、Window对象方法】
- vs2010 sp1 安装 Silverlight4_Tools 提示 错误 解决办法
- python和java的区别-Python与Java的区别与优劣?
- 不想买Xbox?没关系,微软正打算让你在电视上也能玩游戏
- Maven使用 | 多模块下的打包问题
- Source Insight设置黑色背景
- Unity Recorder的使用讲解
- CM3学习笔记(一)存储器系统
- Pandas + Pyecharts | ADX游戏广告投放渠道综合分析
- Python培训价格多少
- Android Tag-Cloud (云标签) 效果
- 【离散数学】编程练习:求关系的传递闭包
- Android Apk 签名方案
- 如何轻松搞定各种图形化展现
- 【unity中运行HTC VIVE的案例场景时一直不显示在头盔上,VR其他都正常】
- android源码集合989个实例 (从网上摘抄,在此记录下)