如何在Java客户端调用RESTful服务

在这个例子中,我们将看到如何使用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();

}

}     
}

时间: 2024-10-12 13:29:57

如何在Java客户端调用RESTful服务的相关文章

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

最近开始了解WCF,写了个最简单的Helloworld,想通过java客户端实现通信.没想到以我的基础,居然花了整整两天(当然是工作以外的时间,呵呵),整个过程大费周折,特写下此文,以供有需要的朋友参考: 第一步:生成WCF服务 新建WCF解决方案,分别添加三个项目,HelloTimeService(类库),HelloTimehost(控制台程序),HelloTimeClient(控制台程序),项目结构如图:各个项目的主要代码:service: Host: Client: 编译通过后,测试Hos

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

最近开始了解WCF,写了个最简单的Helloworld,想通过java客户端实现通信.没想到以我的基础,居然花了整整两天(当然是工作以外的时间,呵呵),整个过程大费周折,特写下此文,以供有需要的朋友参考: 第一步:生成WCF服务 新建WCF解决方案,分别添加三个项目,HelloTimeService(类库),HelloTimehost(控制台程序),HelloTimeClient(控制台程序),项目结构如图:各个项目的主要代码:service: Host: Client: 编译通过后,测试Hos

java客户端调用restful接口

在这个例子中,我们将看到如何使用java.net包实用工具,创建一个访问REST服务RESTful的客户端.当然这不是创建一个RESTful客户端最简单的方法,因为你必须自己读取服务器端的响应,以及Json和Java对象的转换. 请求Get public class JavaNetURLRESTFulClient { private static final String targetURL = "http://localhost:8080/JerseyJSONExample/rest/json

Silverlight客户端调用WCF服务难题解疑

Silverlight客户端调用WCF服务在实际使用中经常会出现的问题就是无法直接应用类文件和配置文件.微软针对这一情况已经给出了解决办法.WCF开发框架可以帮助我们实现可靠性较高的跨平台解决方案.对于这样一款功能性较强的工具,我们在实际使用中通常也会遇到一些问题.在这里就来了解一下其中Silverlight客户端调用WCF服务的一些难题解疑. WCF服务端做好后,可以通过SVCUTIL.exe工具生成客户端代码和配置文件,这些内容比较简单,在这里就不做详细介绍. 但是,如果使用Silverli

如何在Java中调用Python代码

有时候,我们会碰到这样的问题:与A同学合作写代码,A同学只会写Python,而不会Java, 而你只会写Java并不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方设法“调用对方的代码”. 下面我将举一些简单的小例子,借此说明:如何在Java中调用Python代码. 看懂这篇文章只需要具备: 熟悉Java的基本语法 懂一点点Python 主要内容如下: 什么是Jython? 一个HelloPython程序 在Jvm中执行Python脚本 仅在Java中调用Python

java客户端调用c#的webservice服务

此处使用到了CXF框架,可以使用以下坐标从maven仓库中获取相关jar包: 1 <dependency> 2 <groupId>org.apache.cxf</groupId> 3 <artifactId>apache-cxf</artifactId> 4 <version>3.0.3</version> 5 <type>pom</type> 6 </dependency> 自定义一个

webservice -- cxf客户端调用axis2服务端

背景: 有个项目, 需要由第三方提供用户信息, 实现用户同步操作, 对方给提供webservice接口(axis2实现)并也使用axis2作主客户端调用我方提供的webservice接口 起初, 由于项目使用了spring, 且spring可与cxf较好的集成, 所以也就选用了cxf, 可问题随之出现, 接口可以调用到, 接口的具体方法也可以调用到, 但是, 1. cxf作为客户端, 获取服务端返回值时均为null. 2. cxf作为服务端, 获取axis2客户端传来的参数时, 也均为null.

JAVA客户端调用memcached

1. memcached client for java客户端API:memcached client for java 引入jar包:java-memcached-2.6.2.jar package com.pcitc.memcached; import com.danga.MemCached.*; public class TestMemcached { public static void main(String[] args) { /* 初始化SockIOPool,管理memcached

使用java客户端调用redis

Redis支持很多编程语言的客户端,有C.C#.C++.Clojure.Common Lisp.Erlang.Go.Lua.Objective-C.PHP.Ruby.Scala,甚至更时髦的Node.js,当然,更少不了Java的客户端支持.Redis官方列出的Java客户端也有少,有Jedis.JRedis.JDBC-Redis.RJC等,当然,Jedis是Redis官方首选的Java客户端开发包. 下面我们简单对Jedis的入门作简单的介绍. 首先,加入Jedis的依赖包.Jedis依赖包下