在这个例子中,我们将看到如何使用java.net包实用工具,创建一个访问REST服务RESTful的客户端。当然这不是创建一个RESTful客户端最简单的方法,因为你必须自己读取服务器端的响应,以及Json和Java对象的转换。

请求Get

public class JavaNetURLRESTFulClient {

private static final String targetURL = "http://localhost:8080/JerseyJSONExample/rest/jsonServices/print/Jamie";

public static void main(String[] args) {

try {

URL restServiceURL = new URL(targetURL);

HttpURLConnection httpConnection = (HttpURLConnection) restServiceURL.openConnection();                      httpConnection.setRequestMethod("GET");                      httpConnection.setRequestProperty("Accept", "application/json");

if (httpConnection.getResponseCode() != 200) {                             throw new RuntimeException("HTTP GET Request Failed with Error code : "                                           + httpConnection.getResponseCode());                      }

BufferedReader responseBuffer = new BufferedReader(new InputStreamReader(                             (httpConnection.getInputStream())));

String output;                      System.out.println("Output from Server:  \n");

while ((output = responseBuffer.readLine()) != null) {                             System.out.println(output);                      }

httpConnection.disconnect();

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

} }

运行后输出结果是:

Output from Server:      {"id":1,"firstName":"Jamie","age":22,"lastName":"Diaz"}

POST提交:

public class JavaNetURLRESTFulClient {

private static final String targetURL = "http://localhost:8080/JerseyJSONExample/rest/jsonServices/send";

public static void main(String[] args) {

try {

URL targetUrl = new URL(targetURL);

HttpURLConnection httpConnection = (HttpURLConnection) targetUrl.openConnection();                      httpConnection.setDoOutput(true);                      httpConnection.setRequestMethod("POST");                      httpConnection.setRequestProperty("Content-Type", "application/json");

String input = "{\"id\":1,\"firstName\":\"Liam\",\"age\":22,\"lastName\":\"Marco\"}";

OutputStream outputStream = httpConnection.getOutputStream();                      outputStream.write(input.getBytes());                      outputStream.flush();

if (httpConnection.getResponseCode() != 200) {                             throw new RuntimeException("Failed : HTTP error code : "                                    + httpConnection.getResponseCode());                      }

BufferedReader responseBuffer = new BufferedReader(new InputStreamReader(                                    (httpConnection.getInputStream())));

String output;                      System.out.println("Output from Server:\n");                      while ((output = responseBuffer.readLine()) != null) {                             System.out.println(output);                      }

httpConnection.disconnect();

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}      }

如何在Java客户端调用RESTful服务相关推荐

  1. restful java客户端_如何在Java客户端调用RESTful服务

    在这个例子中,我们将看到如何使用java.net包实用工具,创建一个访问REST服务RESTful的客户端.当然这不是创建一个RESTful客户端最简单的方法,因为你必须自己读取服务器端的响应,以及J ...

  2. 转载——Java与WCF交互(一):Java客户端调用WCF服务

    最近开始了解WCF,写了个最简单的Helloworld,想通过java客户端实现通信.没想到以我的基础,居然花了整整两天(当然是工作以外的时间,呵呵),整个过程大费周折,特写下此文,以供有需要的朋友参 ...

  3. Java与WCF交互(一):Java客户端调用WCF服务

    最近开始了解WCF,写了个最简单的Helloworld,想通过java客户端实现通信.没想到以我的基础,居然花了整整两天(当然是工作以外的时间,呵呵),整个过程大费周折,特写下此文,以供有需要的朋友参 ...

  4. Elasticsearch java客户端调用cat服务

    开发环境,测试环境,预发环境和生产环境一般相互隔离的,使用开发环境或者测试环境可以使用cat来查看索引的情况 例如: 但预防环境和测试环境是不允许访问的,那怎么办呢? 可以使用后台来查看上述信息,提供 ...

  5. SpringCloud系列二:Restful 基础架构(搭建项目环境、创建 Dept 微服务、客户端调用微服务)...

    声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.概念:Restful 基础架构 2.具体内容 对于 Rest 基础架构实现处理是 SpringCloud 核心所在,其基本操 ...

  6. java拉起服务,从Java调用Restful服务

    UPDATE as follow up with this: Can I do this way?? if the xml being returned as 4 -.. If I am constr ...

  7. SpringCloud 搭建项目环境、创建 Dept 微服务、客户端调用微服务

    对于 Rest 基础架构实现处理是 SpringCloud 核心所在,其基本操作形式在 SpringBoot 之中已经有了明确 的讲解,那么本次为 了清晰可见,创建一套新的微服务架构:部门微服务(De ...

  8. JAVA客户端调用SAP提供的接口(保姆级教程)

    目前接触到SAP提供了两种不同的接口,对应也有两种不同的调用方式:1.Restful接口,支持直接通过post请求调用:2.WSDL接口,需要使用SoapUI测试并生成代码调用.大家在对接前要先确认接 ...

  9. 客户端调用网关服务“网络请求错误“

    问题: 客户端调用网关服务"网络请求错误" 分析: 刚开始看到这个错误时,什么也没想,直接在网关项目代码全局搜"网络请求错误"结果什么也没搜索到,于是在网关服务 ...

最新文章

  1. 无线通信 -- 跳频技术
  2. 腾讯计费全面开放,为你而来!
  3. 数据可视化|实验一 绘图基础语法和常用参数
  4. win7屏保文件.scr_如何将屏保添加到Ubuntu 12.04
  5. 红旗linux的安装命令,红旗linux安装【处理思路】
  6. IOS基础学习日志(七)利用dispatch_once创建单例及使用
  7. 最实用也最容易被遗忘的 Linux 命令行使用技巧
  8. OC-NSString
  9. mysql错误编号2058_SQLyog连接MySQL时出现的2058错误解决方法
  10. 「硬见小百科」100个示波器基础知识问答
  11. HCIA网络基础01
  12. Nvidia AGX Xavier MAX9286 GMSL 载板(绿板)
  13. qq视频压缩的方法你知道吗
  14. linux x86_64和linux aarch64如何选择
  15. 【JY】No.7.1力学架构结构力学求解器(SM)使用教程
  16. ERP系统是什么意思?ERP系统有哪些品牌?
  17. Linux运维学习笔记之三十一:监控利器Nagios实战
  18. 第十六届北京师范大学程序设计竞赛决赛
  19. 谷歌恐龙游戏HTML,谷歌浏览器自带的恐龙跑酷小游戏
  20. Docker基本命令和操作

热门文章

  1. 将json转为map的两种方式及前后端开发json Api设计规范总结
  2. SqlServer 按指定顺序进行排序
  3. unix/mac/dos-windows三种文本文件的格式的行尾区别
  4. 敢死队核心:{买了就涨指标}
  5. 活动报名 | DEF CON之后,最令人期待的网络安全盛会(内附赠票)
  6. Apache RocketMQ 发布 v4.4.0,新添权限控制和消息轨迹特性
  7. 过程、性能基线、性能模型与目标之间的关系
  8. 第一章 Windows编程基础(1~4课)
  9. 第三百零九节,Django框架,models.py模块,数据库操作——F和Q()运算符:|或者、并且——queryset对象序列化...
  10. 存储技术复杂性的代价