public void doPost()

in appengine-java8/urlfetch/src/main/java/com/example/appengine/UrlFetchServlet.java [62:115]


  public void doPost(HttpServletRequest req, HttpServletResponse resp)
      throws IOException, ServletException {

    String id = req.getParameter("id");
    String text = req.getParameter("text");

    // Validation for id and text inputs.
    if (id == null
        || text == null
        || id.isEmpty()
        || text.isEmpty()
        || Integer.parseInt(id) > 100) {
      req.setAttribute("error", "invalid input");
      req.getRequestDispatcher("/urlfetchresult.jsp").forward(req, resp);
      return;
    }

    // [START complex]
    URL url = new URL("http://jsonplaceholder.typicode.com/posts/" + id);
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    // Enable output for the connection.
    conn.setDoOutput(true);
    conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
    conn.setRequestProperty("Accept", "application/json");
    // Set HTTP request method.
    conn.setRequestMethod("PUT");

    // Create JSON request.
    JSONObject jsonObj =
        new JSONObject().put("userId", 1).put("id", id).put("title", text).put("body", text);

    OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());
    writer.write(jsonObj.toString());
    writer.close();

    int respCode = conn.getResponseCode(); // New items get NOT_FOUND on PUT
    if (respCode == HttpURLConnection.HTTP_OK || respCode == HttpURLConnection.HTTP_NOT_FOUND) {
      req.setAttribute("error", "");
      StringBuilder response = new StringBuilder();
      String line;

      // Read input data stream.
      BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
      while ((line = reader.readLine()) != null) {
        response.append(line);
      }
      reader.close();
      req.setAttribute("response", response.toString());
    } else {
      req.setAttribute("error", conn.getResponseCode() + " " + conn.getResponseMessage());
    }
    // [END complex]
    req.getRequestDispatcher("/urlfetchresult.jsp").forward(req, resp);
  }