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
原创粉丝点击