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)相关推荐

  1. java定义private_java9开始——接口中可以定义private私有方法

    在传统的Java编程中,被广为人知的一个知识点是:java Interface接口中不能定义private私有方法.只允许我们定义public访问权限的方法.抽象方法或静态方法.但是从Java 9 开 ...

  2. java定义一个动物接口_Java 动物声音“模拟器”(用接口实现)

    (1)编写接口Animal (Animal.java) public interface Animal{ public abstract void cry(); public abstract Str ...

  3. java定义一个动物接口,Java 动物声音“模拟器”(用接口实现)

    (1)编写接口Animal (Animal.java) public interface Animal{ public abstract void cry(); public abstract Str ...

  4. java 开发与快递鸟对接的推送接口

    java 开发与快递鸟对接的推送接口 最近公司需要跟快递鸟进行对接,使用快递鸟的API来查询商城的物流信息,在此记录一下,自己跟快递鸟对接的过程吧,如果有那些不对的地方请指出,觉得可以的话转载记得表明 ...

  5. java private 接口_java接口中 定义 private 私有方法

    在传统的Java编程中,被广为人知的一个知识点是:java Interface接口中不能定义private私有方法.只允许我们定义public访问权限的方法.抽象方法或静态方法.但是从Java 9 开 ...

  6. java定义接口区分飞机和汽车_JAVA菜鸟入门篇 - 抽象类、接口 (十九)

    一.抽象类 抽象类(abstract class):使用了abstract关键字所修饰的类叫做抽象类. 为什么需要抽象类?如何定义抽象类? 是一种模板模式.抽象类为所有子类提供一个通用模板,子类可以再 ...

  7. Java接口 详解(二)

    上一篇Java接口 详解(一)讲到了接口的基本概念.接口的使用和接口的实际应用(标准定义).我们接着来讲. 一.接口的应用-工厂设计模式(Factory) 我们先看一个范例: package com. ...

  8. Java基础学习第十二讲:Java面向对象---抽象类和接口

    Java面向对象-抽象类和接口 一.抽象类 抽象的定义: 我们在日常生活中,经常通过总结一些事物的共性来对事物进行分类,这种共性可能是一些相同的属性,也可能是一些相同的动作.通过总结,我们能够清晰的划 ...

  9. 在Java中是如何定义和声明接口的?

    java技术需要学习的内容有很多,本期小编整理的教程资料就是关于"在Java中是如何定义和声明接口的?"的内容,希望下面的介绍能够给大家带来帮助. 如果一个抽象类的所有方法都是抽象 ...

  10. java定义接口_一文知道Java中接口的定义

    使用interface来定义一个接口.接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成.定义接口的基本格式如下: 方法:接口中的方法只有定义而没有被实现. ...

最新文章

  1. python appium 并行多设备_学会使用python启动多个appium server,然后获取多台设备的driver...
  2. 【PAT (Advanced Level) Practice】1002 A+B for Polynomials (25 分)
  3. 解析TOMCAT框架 .
  4. java导出excel_如何导出你和女票的微信聊天记录
  5. JavaScript基础12-day14【DOM查询(获取元素节点、获取元素节点的子节点)、全选练习、DOM增删改、DOM添加删除记录、Window对象方法】
  6. vs2010 sp1 安装 Silverlight4_Tools 提示 错误 解决办法
  7. python和java的区别-Python与Java的区别与优劣?
  8. 不想买Xbox?没关系,微软正打算让你在电视上也能玩游戏
  9. Maven使用 | 多模块下的打包问题
  10. Source Insight设置黑色背景
  11. Unity Recorder的使用讲解
  12. CM3学习笔记(一)存储器系统
  13. Pandas + Pyecharts | ADX游戏广告投放渠道综合分析
  14. Python培训价格多少
  15. Android Tag-Cloud (云标签) 效果
  16. 【离散数学】编程练习:求关系的传递闭包
  17. Android Apk 签名方案
  18. 如何轻松搞定各种图形化展现
  19. 【unity中运行HTC VIVE的案例场景时一直不显示在头盔上,VR其他都正常】
  20. android源码集合989个实例 (从网上摘抄,在此记录下)

热门文章

  1. parsley.js自定义验证规则之大小写
  2. PHP团队 编码规范 代码样式风格规范
  3. 防止他人复制网站内容
  4. oracle backup imp/exp
  5. struct and typedef
  6. JavaWeb开发模式
  7. 看不到日志_迷之 crontab 异常:不运行、不报错、无日志?
  8. 【NCRE】——Winform窗体控件随窗体大小而变化
  9. 1000并发的系统服务器配置,1000人并发服务器配置
  10. 工人与资本家互相养活,主动权在资本家手里