jersey POST (使用 Jersey 和 Apache Tomcat 构建 RESTful Web 服务)

来源:互联网 发布:二级域名指定端口 编辑:程序博客网 时间:2024/06/06 13:59
    关于jersey框架的 POST 方法,网上有不少帖子,大都附有代码,但是我没发现有讲得很透彻的,有的只知道个大概就把帖子发上来,有的代码里的方法根本就不行还有错误。也并不是说发这些帖子不好,我也是在这些帖子的基础上摸索出来的,觉得大家还是尽量把帖子写得正确一点,要不发一个错误的帖子会耽误很多人的时间!
    我的方法是这样的:
01 import java.io.BufferedReader;
02 import java.io.ByteArrayInputStream;
03 import java.io.FileWriter;
04 import java.io.IOException;
05 import java.io.InputStream;
06 import java.io.InputStreamReader;
07 import java.io.OutputStreamWriter;
08 import java.net.URI;
09 import java.net.URISyntaxException;
10
11 import javax.servlet.http.HttpServletRequest;
12 import javax.ws.rs.Consumes;
13 import javax.ws.rs.FormParam;
14 import javax.ws.rs.GET;
15 import javax.ws.rs.POST;
16 import javax.ws.rs.PUT;
17 import javax.ws.rs.Path;
18 import javax.ws.rs.PathParam;
19 import javax.ws.rs.Produces;
20 import javax.ws.rs.core.Context;
21 import javax.ws.rs.core.MediaType;
22 import javax.ws.rs.core.Response;
23 import org.apache.hadoop.security.User;
24 import com.sun.jersey.api.client.Client;
25 import com.sun.jersey.api.client.WebResource;
26
27 @Path("/test")
28 public class SpectrumResource {
29     @POST
30     @Path("test_post")
31     @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
32     public String getTest22222(InputStream is, @Context HttpServletRequest request) throwsException{
33         BufferedReader in = new BufferedReader(new InputStreamReader(is)) ;
34         StringBuffer buffer = new StringBuffer();
35         String line="";
36         while((line=in.readLine())!=null)
37         {
38            buffer.append(line);
39         }
40         return buffer.toString();
41     }
42
43 }

01 import java.io.ByteArrayInputStream;
02 import java.net.URI;
03 import java.net.URISyntaxException;
04 import javax.ws.rs.core.MediaType;
05 import com.sun.jersey.api.client.Client;
06 import com.sun.jersey.api.client.WebResource;
07
08 public class clientTest {
09     public static void main(String[] args) throws URISyntaxException{
10         Client client = Client.create();
11         URI u = new URI("http://localhost:8088/testExam/test/test_post");
12         System.out.println(u);
13         WebResource resource = client.resource(u);
14         resource = client.resource(u);
15         String buf = "inputstream content.aaaaabbbbaaaaaaaaa";
16         ByteArrayInputStream bais = new ByteArrayInputStream(buf.getBytes());
17         String result = resource.entity(bais).type(MediaType.APPLICATION_FORM_URLENCODED).post(String.class);
18         System.out.println(result);
19     }
20 }
原创粉丝点击