使用 Jersey 调用 Restful 服务

第 20 章 Jersey - RESTful Web Services in Java.

目录

  • 20.1. Client
    • 20.1.1. Maven 版本
    • 20.1.2. GET 操作
    • 20.1.3. GET + Auth 用户认证

https://jersey.java.net/

20.1. Client

20.1.1. Maven 版本

1.x

			<!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-client -->
<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-client</artifactId>
    <version>1.19.2</version>
</dependency>	

2.x 版本

			<dependency>
    <groupId>org.glassfish.jersey.core</groupId>
    <artifactId>jersey-client</artifactId>
    <version>2.23.2</version>
</dependency>		

两个版本差异非常大,本文的例子使用2.23.2

20.1.2. GET 操作

			package cn.netkiller.jersey;

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Invocation;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

import org.glassfish.jersey.client.ClientConfig;

public class JerseyClientGet {

	public static void main(String[] args) {

		ClientConfig clientConfig = new ClientConfig();

		Client client = ClientBuilder.newClient(clientConfig);
		WebTarget webTarget = client.target("http://inf.netkiller.cn").path("/list/json/2.html");

		Invocation.Builder invocationBuilder = webTarget.request(MediaType.APPLICATION_JSON);
		Response response = invocationBuilder.get();

		System.out.println(response.getStatus());
		System.out.println(response.getStatusInfo());

		if (response.getStatus() == 200) {

			String output = response.readEntity(String.class);
			System.out.println(output);

		}

	}
}	

20.1.3. GET + Auth 用户认证

			package cn.netkiller.jersey;

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Invocation;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

import org.glassfish.jersey.client.ClientConfig;
import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature;

public class JerseyClientGetAuth {

	public static void main(String[] args) {

		ClientConfig clientConfig = new ClientConfig();

		HttpAuthenticationFeature feature = HttpAuthenticationFeature.basic("neo", "chen");
		clientConfig.register(feature);

		Client client = ClientBuilder.newClient(clientConfig);
		WebTarget webTarget = client.target("http://api.netkiller.cn/v1/withdraw/ping.json").path("");

		Invocation.Builder invocationBuilder = webTarget.request(MediaType.APPLICATION_JSON);
		Response response = invocationBuilder.get();

		System.out.println(response.getStatus());
		System.out.println(response.getStatusInfo());

		if (response.getStatus() == 200) {

			String output = response.readEntity(String.class);
			System.out.println(output);

		}

	}
}			

原文发布于微信公众号 - Netkiller(netkiller-ebook)

原文发表时间:2016-09-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏向治洪

深入理解Android插件化技术

插件化技术可以说是Android高级工程师所必须具备的技能之一,从2012年插件化概念的提出(Android版本),到2016年插件化的百花争艳,可以说,插件化...

3347
来自专栏钟绍威的专栏

SpringMVC基本使用关于DisptacherServlet关于ServletContainerInitializer最简单配置接收参数路径变量表单变量

springMVC是一个MVC框架,他控制着请求相应的整个流程,从请求一进入到应用服务器到相应离开,都离不开mvc框架 请求在应用服务器中 先说说请求相应在应用...

1936
来自专栏Ryan Miao

在jfinal中使用druid,并配置查看权限

首先导入druid包,然后配置configPlugin 1 @Override 2 public void configPlugin(Plugins...

35215
来自专栏向治洪

Android杀毒实现原理及实例

一个杀毒软甲最核心的部分一个是病毒库一个是杀毒引擎,病毒库从服务器中获得,杀毒引擎实际上是判断程序中的包名和签名是否匹配病毒库中的包名和签名,如果匹配则为病毒,...

1797
来自专栏IT笔记

springMVC配置 国际化实现中英文切换

一.基于session的国际化实现: 首先配置我们项目的springservlet-mvc.xml文件添加的内容如下: <bean id="messageSou...

3134
来自专栏子勰随笔

Android简单实现的多线程下载模块

1776
来自专栏服务端技术杂谈

结合Spring容器启动做IOC

541
来自专栏酷玩时刻

微信一次性订阅消息

http请求方式: post https://api.weixin.qq.com/cgi-bin/message/template/subscribe?acc...

693
来自专栏mukekeheart的iOS之旅

android service 学习(下)

android service 学习(下)   通常每个应用程序都在它自己的进程内运行,但有时需要在进程间传递对象,你可以通过应用程序UI的方式写个运行在一...

2389
来自专栏程序员阿凯

(一)Servlet 工作原理解析 -- 第一讲 Servlet 容器

1253

扫描关注云+社区