参考Jersey的文档http://jersey.java.net/nonav/documentation/latest/client-api.html
整理自己使用的手册,同时希望能给大家也带来便利
1.创建一个Client的实例
Client c = Client.create();
2.配置Client参数(通过getProperties方法或者一些setter方法)
c.getProperties().put(ClientConfig.PROPERTY_FOLLOW_REDIRECTS, true); or c.setFollowRedirects(true); or 在创建Client实例时利用ClientConfig配置参数 ClientConfig cc = new DefaultClientConfig(); cc.setFollowRedirects(true); Client c = Client.create(cc);
3.创建完Client实例后,接下来就要获取一个WebResource实例
WebResource r = c.resource("http://localhost:8080/xyz");
4.建立一个请求(request)
建立对Web资源的请求需要使用builder pattern(RequestBuilder)和HTTP方法(UniformInterface)
String response = r.accept(MediaType.APPLICATION_JSON_TYPE,MediaType.APPLICATION_XML_TYPE) .header("X-FOO", "BAR") .get(String.class);
这段代码:发送了一个Get请求,带有一个Accept header( application/json, application/xml)和一个非标准的header(X-FOO of BAR)如果一个请求需要获取一个entity or representation则需要调用HTTP方法的PUT、POST、DELETE
String request = "content"; String response = r.accept(MediaType.APPLICATION_JSON_TYPE,MediaType.APPLICATION_XML_TYPE) .header("X-FOO", "BAR") .post(String.class, request);
这里的String "content"被序列化成一个request entity。除了此方法,也可用type builder方法来声明request entity的Content-Type
String response = r.accept(MediaType.APPLICATION_JSON_TYPE,MediaType.APPLICATION_XML_TYPE) .header("X-FOO", "BAR") .type(MeidaType.TEXT_PLAINT_TYPE) .post(String.class, request);
or 使用entity方法去声明entity和type
String response = r.accept(MediaType.APPLICATION_JSON_TYPE,MediaType.APPLICATION_XML_TYPE) .header("X-FOO", "BAR") .entity(request, MediaType.TEXT_PLAIN_TYPE) .post(String.class, request);
5.接受响应
如果有需要一个response meta-data,可以声明一个ClientResponse去获取一个响应的status,header,entity
ClientResponse response = r.get(ClientResponse.class); EntityTag e = response.getEntityTag(); String entity = response.getEntity(String.class);
如果没有使用ClientResponse,并且响应状态>=300,那么就会抛出一个runtime exception UniformInterfaceException
try { String entity = r.get(String.class); } catch (UniformInterfaceException ue) { ClientResponse response = ue.getResponse(); }
6.在现有WebResouce基础上创建新的WebResouce
通过传入新的URI,可以在一个已存在的WebResource上在创建请求前创建一个新的WebResource
WebResource r = c.resource("http://localhost:8080/xyz"); MultivalueMap<String, String> params = new MultivalueMapImpl(); param.add("foo", "x"); param.add("bar", "y"); String response = r.path("abc").queryParams(param).get(String.class);
这段代码对URI"http://localhost:8080/xyz/abc?foo=x&bar=y"申请一个GET请求
7.representations的java实例和类型
Jersey server端支持的java类型在client端同样适用,包括JAX-RS支持的ava类型(bytes[], String, InputStream, Reader, File, javax.activation.DataSource, javax.xml.transform.Source, StreamingOoutput)和jersey支持的JSON, ATOM和Multipart MIME
相关推荐
赠送原API文档:jersey-client-2.22.2-javadoc.jar; 赠送源代码:jersey-client-2.22.2-sources.jar; 赠送Maven依赖信息文件:jersey-client-2.22.2.pom; 包含翻译后的API文档:jersey-client-2.22.2-javadoc-API...
赠送原API文档:jersey-client-2.22.2-javadoc.jar; 赠送源代码:jersey-client-2.22.2-sources.jar; 赠送Maven依赖信息文件:jersey-client-2.22.2.pom; 包含翻译后的API文档:jersey-client-2.22.2-javadoc-API...
赠送原API文档:jersey-client-1.19-javadoc.jar; 赠送源代码:jersey-client-1.19-sources.jar; 赠送Maven依赖信息文件:jersey-client-1.19.pom; 包含翻译后的API文档:jersey-client-1.19-javadoc-API文档-...
赠送原API文档:jersey-client-1.9-javadoc.jar; 赠送源代码:jersey-client-1.9-sources.jar; 赠送Maven依赖信息文件:jersey-client-1.9.pom; 包含翻译后的API文档:jersey-client-1.9-javadoc-API文档-中文...
赠送原API文档:jersey-client-1.19-javadoc.jar; 赠送源代码:jersey-client-1.19-sources.jar; 赠送Maven依赖信息文件:jersey-client-1.19.pom; 包含翻译后的API文档:jersey-client-1.19-javadoc-API文档-...
赠送原API文档:jersey-client-1.9-javadoc.jar; 赠送源代码:jersey-client-1.9-sources.jar; 赠送Maven依赖信息文件:jersey-client-1.9.pom; 包含翻译后的API文档:jersey-client-1.9-javadoc-API文档-中文...
Jersey 1.18 API CHM文档, 我制作的, 原创.
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jersey/api/client/config/ClientConfig at org.apache.hadoop.yarn.client.api.TimelineClient.createTimelineClient(TimelineClient.java:...
RESTful webservices – Client API in Java - Jersey
SpringMVC跨服务器上传文件
springmvc远程上传文件相关jar包jersey-client,jersey-core-1.18.1,上传文件图片
如果flink提交jar到yarn上运行报如下错误:java.lang.NoClassDefFoundError: com/sun/jersey/core/util/FeaturesAndProperties,在flink的lib包里面添加这两个jar包
jersey-client-2.2.jar、jersey-core-1.9.jar来实现RESTful 框架
jersey-client-1.0.3.jar
包含翻译后的API文档:jersey-server-2.22.2-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.glassfish.jersey.core:jersey-server:2.22.2; 标签:glassfish、core、server、jersey、jar包、java、中文文档; ...
jersey-client-1.9.jar包
flink-hadoop-compatibility_2.12-1.7.1.jar javax.ws.rs-api-2.0.1.jar jersey-common-2.27.jar ...Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jersey/api/client/config/ClientConfig
官方对JAX-RS RESTFul的实现,用于客户端开发
jsrsey实现Restful需要的jar包
java jersey spring 集成 开发 restful API ,并将restful 返回的数据以JSON的格式返回,开发非常简单,易懂。欢迎小伙伴们 下载资源。