使用 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 条评论
登录 后参与评论

相关文章

来自专栏技术碎碎念

GET、POST编码问题

934
来自专栏向治洪

Spring+SpringMVC+MyBatis整合

1、基本概念 1.1、Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在...

3376
来自专栏osc同步分享

在springBoot项目中使用activiti

依赖: 新建springBoot项目时勾选activiti,或者在已建立的springBoot项目添加以下依赖: <dependency> <groupId>...

1.7K7
来自专栏别先生

一脸懵逼学习Struts数据校验以及数据回显,模型驱动,防止表单重复提交的应用。

1:Struts2表单数据校验:   (1)前台校验,也称之为客户端校验,主要是通过Javascript编程的方式进行数据的验证。   (2)后台校验,也称之为...

1757
来自专栏张坤的专栏

基于Http原理实现Android的图片上传和表单提交

Java的HttpURLConnection没有这么简单的封装形式,需要完整的Request Payload模拟,用起来相对不方便,不过这样能够对表单提交的原理...

2.1K0
来自专栏JadePeng的技术博客

ASP.NET MVC 开源项目Kigg解读(1)

Kigg是一个很好的ASP.NET MVC范例项目,本着研究的目的,对Kigg进行解读。 ASP.NET MVC Linq To SQL MS Patter...

2786
来自专栏java闲聊

第二篇 SSM运行Demo

1855
来自专栏王磊的博客

Spring Boot(六)集成 MyBatis 操作 MySQL 8

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC代码和手动设置参数以及获取结果集。

1492
来自专栏JadePeng的技术博客

基于spring security 实现前后端分离项目权限控制

前后端分离的项目,前端有菜单(menu),后端有API(backendApi),一个menu对应的页面有N个API接口来支持,本文介绍如何基于spring se...

910
来自专栏Java成神之路

Java微信公众平台开发_05_微信网页授权

登录微信公众平台后台, 开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息 - 修改,

753

扫码关注云+社区