Jersey Client api 基本使用
2016-11-07 23:43
357 查看
Jersey client api 基本使用。
1.必须通过ClientBuilder工厂初始化Client实例;
2.创建目标,该目标构造参数可以是String ,URI,Link 形式的连接,这里用字符串。
3.1 get请求;如果2是根路径,可以同path方法添加下级连接。需要queryString参数可以通过queryParam实现
3.2 post 请求;通过Invocation.Builder.post(Enity.entity());传递form表单;form表单通过javax.ws.rs.core.Form类型创建实例
4.接受response返回类型。这里如果需要特别指明可以通过WebTarget.request方法定义media返回类型。Jersey提供javax.ws.rs.core.MediaType类选择。
5. 设置请求参数,例如头,cookie等
6.发送请求,并且接受返回。这里是堵塞请求,必须等返回response,并操作返回值
7. response 连接关闭。如果获取response对象并且读取entity数据,Jersey会自动关闭连接,这个时候再操作response entity数据则会跑出异常: Entity input stream has already been closed;如果将entity读入流中(InputStream)并不读取;或者不对response操作 那么需要手动关闭连接;
1.必须通过ClientBuilder工厂初始化Client实例;
Client client = ClientBuilder.newClient();
2.创建目标,该目标构造参数可以是String ,URI,Link 形式的连接,这里用字符串。
WebTarget baseTarget= client.target("http://www.baidu.com/");
3.1 get请求;如果2是根路径,可以同path方法添加下级连接。需要queryString参数可以通过queryParam实现
WebTarget subTarget=baseTarget.path("s").queryParam("ie", "utf-8"). queryParam("wd", "jersey");
3.2 post 请求;通过Invocation.Builder.post(Enity.entity());传递form表单;form表单通过javax.ws.rs.core.Form类型创建实例
Form form=new Form(); form.param("ie","utf-8"); form.param("wd","jersey"); Response response=builder.post(Entity.entity(form, MediaType.MULTIPART_FORM_DATA_TYPE));
4.接受response返回类型。这里如果需要特别指明可以通过WebTarget.request方法定义media返回类型。Jersey提供javax.ws.rs.core.MediaType类选择。
Invocation.Builder builder=subTarget.request(MediaType.APPLICATION_JSON_TYPE).header("someHead", "true");
5. 设置请求参数,例如头,cookie等
Invocation.Builder builder=subTarget.request().header("someHead", "true");
6.发送请求,并且接受返回。这里是堵塞请求,必须等返回response,并操作返回值
Response response=builder.get(); System.out.println("request url="+subTarget.getUri().toString()); if(response.getStatus()==200){ System.out.println("status="+response.getStatus()+", statusInfo="+response.getStatusInfo()); //System.out.println(response.readEntity(String.class)); }
7. response 连接关闭。如果获取response对象并且读取entity数据,Jersey会自动关闭连接,这个时候再操作response entity数据则会跑出异常: Entity input stream has already been closed;如果将entity读入流中(InputStream)并不读取;或者不对response操作 那么需要手动关闭连接;
相关文章推荐
- Jersey Client api 过滤器ClientRequestFilter 使用
- Kafka Client API 基本使用
- Windows下使用Subversion Client API编程环境配置
- HttpClient基本功能的使用
- SVN的使用——基本知识,Server搭建与Client日常使用维护
- Android HttpClient基本使用方法
- Android HttpClient基本使用方法
- 使用 OpenSSL API 进行安全编程--创建基本的安全连接和非安全连接
- UICollectionView 基本使用(配合Flickr API)
- MongoDB java api for 插入和单collection基本查询使用示例
- FastDFS的配置、部署与API使用解读(4)FastDFS配置详解之Client配置
- 使用JAVA的开源API-JExcelAPI来操作Excel,实现基本的功能
- API编程基本控件使用
- 使用eBay API基本步骤介绍
- HttpClient的基本使用
- 使用eBay API基本步骤介绍
- [zz]HttpClient的基本使用
- VC++开发中最简单的Multi-Byte(ANSI)和Unicode互转方法,灵活使用Windows基本API:wsprintfA, wsprintfW
- VC++开发中最简单的Multi-Byte(ANSI)和Unicode互转方法,灵活使用Windows基本API:wsprintfA, wsprintfW
- sina kanyun 应用api-client使用问题 修改