0

私は新しい残りのプログラマーで、Android デバイス (クライアント) の IP をサーバーに送信し、ファイルに登録したいと考えています。これには http request post を使用したいので、このパラメーター値をヘッダーで送信する必要があります。使った

    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

REST リクエストを受信するために Servlet.doPost を使用している特定の理由はありますか?

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 に答える