package org.jersey2.simple.example.client;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.glassfish.jersey.moxy.json.MoxyJsonFeature;
import org.jersey2.simple.MyApplication;
import org.jersey2.simple.example.resource.ClassRoom;
import org.jersey2.simple.example.resource.Student;
public class StudentRestServiceClient{
public static void testGetStudentsV1(){
Client client = ClientBuilder.newBuilder().register(MoxyJsonFeature.class).register(MyApplication.createMoxyJsonResolver()).build();
Response response = client.target("http://localhost:8080/v1/api/student").path("v1").request(MediaType.APPLICATION_JSON).get();
System.out.println(response.getStatus());
System.out.println(response.readEntity(String.class));
System.out.println("---------------------------------");
response = client.target("http://localhost:8080/v1/api/student").path("v1").request(MediaType.APPLICATION_XML).get();
System.out.println(response.getStatus());
System.out.println(response.readEntity(String.class));
}
public static void testGetStudentsV2(){
Client client = ClientBuilder.newBuilder().register(MoxyJsonFeature.class).register(MyApplication.createMoxyJsonResolver()).build();
Response response = client.target("http://localhost:8080/v1/api/student").path("v2").request(MediaType.APPLICATION_JSON).get();
System.out.println(response.getStatus());
System.out.println(response.readEntity(String.class));
System.out.println("---------------------------------");
response = client.target("http://localhost:8080/v1/api/student").path("v2").request(MediaType.APPLICATION_XML).get();
System.out.println(response.getStatus());
System.out.println(response.readEntity(String.class));
}
public static void testGetStudentsV3(){
Client client = ClientBuilder.newBuilder().register(MoxyJsonFeature.class).register(MyApplication.createMoxyJsonResolver()).build();
Response response = client.target("http://localhost:8080/v1/api/student").path("v3").request(MediaType.APPLICATION_JSON).get();
System.out.println(response.getStatus());
System.out.println(response.readEntity(String.class));
System.out.println("---------------------------------");
response = client.target("http://localhost:8080/v1/api/student").path("/v3").request(MediaType.APPLICATION_XML).get();
System.out.println(response.getStatus());
System.out.println(response.readEntity(String.class));
}
public static void testGetStudentsV4(){
Client client = ClientBuilder.newBuilder().register(MoxyJsonFeature.class).register(MyApplication.createMoxyJsonResolver()).build();
Response response = client.target("http://localhost:8080/v1/api/student").path("v4").queryParam("pageNumber", "1").request(MediaType.APPLICATION_JSON).get();
System.out.println(response.getStatus());
System.out.println(response.readEntity(String.class));
System.out.println("---------------------------------");
response = client.target("http://localhost:8080/v1/api/student").path("/v4").queryParam("pageNumber", "1").request(MediaType.APPLICATION_XML).get();
System.out.println(response.getStatus());
System.out.println(response.readEntity(String.class));
}
public static void testGetStudentInJson(){
Client client = ClientBuilder.newBuilder().register(MoxyJsonFeature.class).register(MyApplication.createMoxyJsonResolver()).build();
Response response = client.target("http://localhost:8080/v1/api/student/json").path("1").request().get();
System.out.println(response.getStatus());
System.out.println(response.readEntity(String.class));
}
public static void testGetStudentInXml(){
Client client = ClientBuilder.newBuilder().register(MoxyJsonFeature.class).register(MyApplication.createMoxyJsonResolver()).build();
Response response = client.target("http://localhost:8080/v1/api/student/xml").path("1").request().get();
System.out.println(response.getStatus());
System.out.println(response.readEntity(String.class));
}
public static void testGetStudentInfo(){
Client client = ClientBuilder.newBuilder().register(MoxyJsonFeature.class).register(MyApplication.createMoxyJsonResolver()).build();
Response response = client.target("http://localhost:8080/v1/api/student").path("1").request(MediaType.APPLICATION_JSON).get();
System.out.println(response.getStatus());
System.out.println(response.readEntity(String.class));
System.out.println("---------------------------------------------------");
response = client.target("http://localhost:8080/v1/api/student").path("/1").request(MediaType.APPLICATION_XML).get();
System.out.println(response.getStatus());
System.out.println(response.readEntity(String.class));
}
/**
* 测试PUT方法
*/
public static void testUpdateStudent(){
Client client = ClientBuilder.newBuilder().register(MoxyJsonFeature.class).register(MyApplication.createMoxyJsonResolver()).build();
Student student = new Student();
student.setSid(1);
student.setName("SCOTT");
ClassRoom classRoom = new ClassRoom();
classRoom.setCid(1);
classRoom.setClassname("三年二班");
student.setClassRoom(classRoom);
Response response = client.target("http://localhost:8080/v1/api/student").request(MediaType.APPLICATION_JSON).put(Entity.entity(student, MediaType.APPLICATION_JSON));
System.out.println(response.getStatus());
System.out.println(response.readEntity(String.class));
}
/**
* 测试POST方法
*/
public static void testSaveStudent(){
Client client = ClientBuilder.newBuilder().register(MoxyJsonFeature.class).register(MyApplication.createMoxyJsonResolver()).build();
Student student = new Student();
student.setSid(2);
student.setName("SCOTT");
ClassRoom classRoom = new ClassRoom();
classRoom.setCid(2);
classRoom.setClassname("三年二班");
student.setClassRoom(classRoom);
Response response = client.target("http://localhost:8080/v1/api/student").request(MediaType.APPLICATION_JSON).post(Entity.entity(student, MediaType.APPLICATION_JSON));
System.out.println(response.getStatus());
System.out.println(response.readEntity(String.class));
}
/**
* 测试DELETE方法
*/
public static void testRemoveStudent(){
Client client = ClientBuilder.newBuilder().register(MoxyJsonFeature.class).register(MyApplication.createMoxyJsonResolver()).build();
Response response = client.target("http://localhost:8080/v1/api/student").path("1").request(MediaType.APPLICATION_JSON).delete();
System.out.println(response.getStatus());
System.out.println(response.readEntity(String.class));
}
public static void main(String[] args) {
testGetStudentsV1();
System.out.println();
testGetStudentsV2();
System.out.println();
testGetStudentsV3();
System.out.println();
testGetStudentsV4();
System.out.println();
testGetStudentInJson();
System.out.println();
testGetStudentInXml();
System.out.println();
testGetStudentInfo();
System.out.println();
testUpdateStudent();
System.out.println();
testSaveStudent();
System.out.println();
testRemoveStudent();
}
}