From eafd2dc41426c4869ecc4b6271ea6d6a964647bc Mon Sep 17 00:00:00 2001
From: Les Vogel
+ "
- + jo.getJSONObject("value").getString("joke")
- + "
");
- out.println("");
+ JSONObject jo = new JSONObject(json.toString());
+
+ req.setAttribute("joke", jo.getJSONObject("value").getString("joke"));
+ req.getRequestDispatcher("/main.jsp").forward(req, resp);
}
+
+ @Override
+ public void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws IOException, ServletException {
+
+ String id = req.getParameter("id");
+ String text = req.getParameter("text");
+
+ if (id == null || text == null || id == "" || text == "") {
+ req.setAttribute("error", "invalid input");
+ req.getRequestDispatcher("/main.jsp").forward(req,resp);
+ return;
+ }
+
+ JSONObject jsonObj = new JSONObject()
+ .put("userId", 33)
+ .put("id", id)
+ .put("title", text)
+ .put("body", text);
+
+ // [START complex]
+ URL url = new URL("http://jsonplaceholder.typicode.com/posts/"+id);
+ HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+ conn.setDoOutput(true);
+ conn.setRequestMethod("PUT");
+
+ OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());
+ writer.write(URLEncoder.encode(jsonObj.toString(), "UTF-8"));
+ 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", "" );
+ StringBuffer response = new StringBuffer();
+ String line;
+
+ 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("/main.jsp").forward(req, resp);
+ }
+
}
diff --git a/appengine/urlfetch/src/main/webapp/main.jsp b/appengine/urlfetch/src/main/webapp/main.jsp
new file mode 100644
index 00000000000..7e16a58d092
--- /dev/null
+++ b/appengine/urlfetch/src/main/webapp/main.jsp
@@ -0,0 +1,48 @@
+<%--
+Copyright 2016 Google Inc. All Rights Reserved.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+
+
+ URL Fetch Sample
+ Joke: ${joke}
+ ${error}
+
* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + *
* http://www.apache.org/licenses/LICENSE-2.0 - * + *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -16,10 +16,8 @@
package com.example.appengine;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import org.json.JSONObject;
+
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
@@ -27,8 +25,10 @@
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
-
-import org.json.JSONObject;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
@SuppressWarnings("serial")
public class UrlFetchServlet extends HttpServlet {
@@ -63,7 +63,7 @@ public void doPost(HttpServletRequest req, HttpServletResponse resp)
if (id == null || text == null || id == "" || text == "") {
req.setAttribute("error", "invalid input");
- req.getRequestDispatcher("/main.jsp").forward(req,resp);
+ req.getRequestDispatcher("/main.jsp").forward(req, resp);
return;
}
@@ -85,7 +85,7 @@ public void doPost(HttpServletRequest req, HttpServletResponse resp)
int respCode = conn.getResponseCode(); // New items get NOT_FOUND on PUT
if (respCode == HttpURLConnection.HTTP_OK || respCode == HttpURLConnection.HTTP_NOT_FOUND) {
- req.setAttribute("error", "" );
+ req.setAttribute("error", "");
StringBuffer response = new StringBuffer();
String line;
@@ -98,7 +98,7 @@ public void doPost(HttpServletRequest req, HttpServletResponse resp)
} else {
req.setAttribute("error", conn.getResponseCode() + " " + conn.getResponseMessage());
}
- // [END complex]
+ // [END complex]
req.getRequestDispatcher("/main.jsp").forward(req, resp);
}
From 976ecbee90cb30cce50094f7e8a42071020220d2 Mon Sep 17 00:00:00 2001
From: Les Vogel tags
---
.../java/com/example/appengine/UrlFetchServlet.java | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/appengine/urlfetch/src/main/java/com/example/appengine/UrlFetchServlet.java b/appengine/urlfetch/src/main/java/com/example/appengine/UrlFetchServlet.java
index 99efbb86b3b..374db62bb07 100644
--- a/appengine/urlfetch/src/main/java/com/example/appengine/UrlFetchServlet.java
+++ b/appengine/urlfetch/src/main/java/com/example/appengine/UrlFetchServlet.java
@@ -1,12 +1,10 @@
-/**
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
+/*
+ * Copyright 2016 Google Inc. All Rights Reserved.
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.