jersey get put delete post的用法及客户端如何调用

服务资源的代码如下:

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
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值