0

我是一名新的休息程序员,我想将 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) {}
  }

}
4

1 回答 1

0

您使用 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

于 2013-09-20T00:16:11.600 回答