jersey get put delete post的用法及客户端如何调用
来源:互联网 发布:淘宝卖家电话采集软件 编辑:程序博客网 时间:2024/06/06 23:57
服务资源的代码如下:
package com.example.annotation.method;import java.awt.List;import java.util.ArrayList;import javax.ws.rs.BeanParam;import javax.ws.rs.Consumes;import javax.ws.rs.DELETE;import javax.ws.rs.GET;import javax.ws.rs.POST;import javax.ws.rs.PUT;import javax.ws.rs.Path;import javax.ws.rs.Produces;import javax.ws.rs.QueryParam;import javax.ws.rs.core.MediaType;import com.example.domain.Book;//新加的,自己写的, get put delete post方法@Path("BookResourceget")public class BookResourceget { //http://localhost:8080/simpleservice/webapi/BookResourceget/ @GET @Produces(MediaType.APPLICATION_JSON) public Book getWeight(){ Book book=new Book(); book.setBookId(Long.parseLong("110")); book.setBookName("yu"); book.setPublisher("qq"); return book; } @GET @Path("listbook") @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) public Listbook listbook(){ Book book=new Book(); book.setBookId(Long.parseLong("110")); book.setBookName("yu"); book.setPublisher("qq"); Book book2=new Book(); book2.setBookId(Long.parseLong("112")); book2.setBookName("yu2"); book2.setPublisher("qq2"); ArrayList<Book> list=new ArrayList<Book>(); list.add(book); list.add(book2); Listbook booklist=new Listbook(); booklist.setListbook(list); return booklist; } //网页版本用这个才能接收到参数,正确解析,可以用ajax请求,也可以用浏览器测试工具 @PUT @Produces(MediaType.APPLICATION_XML) public Book newBook(@BeanParam Book book){ return book; } //如果用jersey客户端的只能用这个,直接传递实体类和相应实体类 @PUT @Path("Client") @Produces(MediaType.APPLICATION_JSON) public Book newBook1( Book book){ return book; } //网页版本用这个才能接收到参数,正确解析,可以用ajax请求,也可以用浏览器测试工具 @POST //参数说明 @Consumes 可以接收客户端什么样的形式过来, //网页过来的post请求的内容形式一般是application/x-www-form-urlencoded,一般如果不确定注释即可 //@Consumes(MediaType.APPLICATION_FORM_URLENCODED) @Consumes({MediaType.APPLICATION_FORM_URLENCODED}) //@Produces,返回给客户端的的类型MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON //如果请求段没指定就会返回xml优先 @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) public Book createBook(@BeanParam Book book){ return book; } //如果用jersey客户端的只能用这个,直接传递实体类和相应实体类 //上面和下面代码的区别 @BeanParam Book book,Book book 注意传入的实体类 @POST @Path("Client") @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) @Produces(MediaType.APPLICATION_JSON) public Book createBook2(Book book) { return book; } @DELETE public void delete(@QueryParam("bookId") final long bookId){ System.out.println(bookId); }}
见注释说明
可以用ajax来测试,也可以用jersey客户端来测试
测试端代码如下:
public String getbook() { final WebTarget webTarget = client.target(Jaxrs2Client.BASE_URI); final WebTarget pathTarget = webTarget.path("BookResourceget"); final String result = pathTarget.request().get(String.class); Jaxrs2Client.LOGGER.debug(pathTarget.getUri()); Jaxrs2Client.LOGGER.debug(result); return result; } public String delete() { final WebTarget webTarget = client.target(Jaxrs2Client.BASE_URI); final WebTarget pathTarget = webTarget.path("BookResourceget").queryParam("bookId", "110"); final Response result = pathTarget.request().delete(); Jaxrs2Client.LOGGER.debug(pathTarget.getUri()); Jaxrs2Client.LOGGER.debug(result); return result.getStatus() + ""; } public Book post() { final WebTarget webTarget = client.target(Jaxrs2Client.BASE_URI); final WebTarget pathTarget = webTarget.path("BookResourceget").path("Client"); Book book = new Book(100L, "TEST BOOK","你好"); final Book result = pathTarget.request().post(Entity.entity(book, MediaType.APPLICATION_XML), Book.class); Jaxrs2Client.LOGGER.debug(pathTarget.getUri()); Jaxrs2Client.LOGGER.debug(result); return result; } public Book put() { final WebTarget webTarget = client.target(Jaxrs2Client.BASE_URI); final WebTarget pathTarget = webTarget.path("BookResourceget").path("Client"); Book book = new Book(100L, "TEST BOOK","你好2"); final Book result = pathTarget.request().put(Entity.entity(book, MediaType.APPLICATION_XML), Book.class); Jaxrs2Client.LOGGER.debug(pathTarget.getUri()); Jaxrs2Client.LOGGER.debug(result); return result; }
0 0
- jersey get put delete post的用法及客户端如何调用
- GET/POST/PUT/DELETE
- get/post/put/delete
- GET,POST,PUT,DELETE的区别
- GET,POST,PUT,DELETE的区别
- GET,POST,PUT,DELETE的区别
- http 的get,put,post,delete
- GET,POST,PUT,DELETE的区别
- GET,POST,PUT,DELETE的区别
- GET,POST,PUT,DELETE的区别
- HTTP的get、put、post、delete
- GET,POST,PUT,DELETE的区别
- GET,POST,PUT,DELETE的区别
- GET,POST,PUT,DELETE的区别
- GET,POST,PUT,DELETE的区别
- GET,POST,PUT,DELETE的区别
- get,post,delete,put的http请求。
- get、post、put、delete的简单理解
- Runable和thread的区别(多线程必须用Runable)
- Leetcode Repeated DNA Sequences
- Web.config 文件 authentication 元素
- XML Schema
- 基于51单片机和蓝牙控制的红外小车
- jersey get put delete post的用法及客户端如何调用
- [Mapbox GL]添加一个视频
- 视频传输设备的特点与技术构成
- Build a static Qt5.7.1 for Windows using MSVC2013
- mybatis系列-XML 映射配置文件(二)
- 在Linux系统中,用vim编写shell脚本文件时,在一块代码前快速加#号注释
- Behavior designer 英文解释
- Android6.0 WMS(五) WMS计算Activity窗口大小的过程分析(一)应用进程
- LeetCode187—Repeated DNA Sequences