【问题标题】:Extracting a value in a header using post-http in a restful wabservice在restful wabservice中使用post-http提取标头中的值
【发布时间】:2013-09-19 23:23:53
【问题描述】:

我是一个新的rest程序员,我想将android设备(客户端)的ip传输到服务器并将其注册到一个文件中。我想为此使用 http request post,并且必须在 header 中传输此参数值。我用过

    List<NameValuePair> urlParameters = new ArrayList<NameValuePair>();
    urlParameters.add(new BasicNameValuePair("var", "C02G8416DRJM"));

在我的主要活动中,以便将此信息插入请求的标头中(我不确定它是在标头还是正文中注册)。

但是,我无法在服务器部分检索此值...我试过了

    public void doPost(HttpServletRequest req, HttpServletResponse res)
    throws ServletException, IOException {
  String var= req.getParameter("var");
  Writer writer1 = null;
  try {
      writer1 = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("C:\\Users\\X\\Y\\Z\\header.txt"), "utf-8"));
   writer1.write(var);
  } catch (IOException ex){
    // report
  } finally {
     try {writer1.close();} catch (Exception ex) {}
  }

}

【问题讨论】:

    标签: rest jakarta-ee post http-headers


    【解决方案1】:

    您使用 Servlet.doPost 接收 REST 请求的任何特殊原因?

    JAX-RS 使它变得非常简单。一个资源可以定义为:

    @Path("/fruit")
    public class MyResource {
    
    @GET
    public String get() {
        System.out.println("GET");
        return Database.getAll();
    }
    
    @GET
    @Path("{name}")
    public String get(@PathParam("name")String payload) {
        System.out.println("GET");
        return Database.get(payload);
    }
    
    @POST
    public void post(String payload) {
        System.out.println("POST");
        Database.add(payload);
    }
    
    @PUT
    public void put(String payload) {
        System.out.println("PUT");
        Database.add(payload);
    }
    }
    

    完整示例:

    https://github.com/arun-gupta/javaee7-samples/tree/master/jaxrs/jaxrs-endpoint

    请求中的任何参数都可以检索为:

    @Context Application app;
    @Context UriInfo uri;
    @Context HttpHeaders headers;
    @Context Request request;
    @Context SecurityContext security;
    @Context Providers providers;
    

    例如,所有 HTTP 标头都可以使用 headers 字段。

    显示此内容的完整示例位于:

    https://github.com/arun-gupta/javaee7-samples/tree/master/jaxrs/request-binding

    【讨论】:

    • 感谢您的帮助,但在这个项目中,这些信息不应该在 url 中......这就是我试图在 header 中添加这个变量的原因。但是,我没有找到任何关于它的文章。我什至不确定是否可以在标头中添加一个变量,因为一些教程只提到如何以某种方式提取静态信息,例如主机......仍在考虑它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 1970-01-01
    • 2012-02-04
    • 1970-01-01
    • 2016-05-04
    • 1970-01-01
    • 2012-04-21
    相关资源
    最近更新 更多