Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(349)

Unified Diff: talk/examples/android/src/org/appspot/apprtc/util/AsyncHttpURLConnection.java

Issue 1235563006: Move talk/examples/* to webrtc/examples. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: 201508051337 Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: talk/examples/android/src/org/appspot/apprtc/util/AsyncHttpURLConnection.java
diff --git a/talk/examples/android/src/org/appspot/apprtc/util/AsyncHttpURLConnection.java b/talk/examples/android/src/org/appspot/apprtc/util/AsyncHttpURLConnection.java
deleted file mode 100644
index 9cb0196bb26885523502925f94b660f9baf7d50a..0000000000000000000000000000000000000000
--- a/talk/examples/android/src/org/appspot/apprtc/util/AsyncHttpURLConnection.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * libjingle
- * Copyright 2015 Google Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
- * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-package org.appspot.apprtc.util;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.HttpURLConnection;
-import java.net.SocketTimeoutException;
-import java.net.URL;
-import java.util.Scanner;
-
-/**
- * Asynchronous http requests implementation.
- */
-public class AsyncHttpURLConnection {
- private static final int HTTP_TIMEOUT_MS = 8000;
- private static final String HTTP_ORIGIN = "https://apprtc.appspot.com";
- private final String method;
- private final String url;
- private final String message;
- private final AsyncHttpEvents events;
- private String contentType;
-
- /**
- * Http requests callbacks.
- */
- public interface AsyncHttpEvents {
- public void onHttpError(String errorMessage);
- public void onHttpComplete(String response);
- }
-
- public AsyncHttpURLConnection(String method, String url, String message,
- AsyncHttpEvents events) {
- this.method = method;
- this.url = url;
- this.message = message;
- this.events = events;
- }
-
- public void setContentType(String contentType) {
- this.contentType = contentType;
- }
-
- public void send() {
- Runnable runHttp = new Runnable() {
- public void run() {
- sendHttpMessage();
- }
- };
- new Thread(runHttp).start();
- }
-
- private void sendHttpMessage() {
- try {
- HttpURLConnection connection =
- (HttpURLConnection) new URL(url).openConnection();
- byte[] postData = new byte[0];
- if (message != null) {
- postData = message.getBytes("UTF-8");
- }
- connection.setRequestMethod(method);
- connection.setUseCaches(false);
- connection.setDoInput(true);
- connection.setConnectTimeout(HTTP_TIMEOUT_MS);
- connection.setReadTimeout(HTTP_TIMEOUT_MS);
- // TODO(glaznev) - query request origin from pref_room_server_url_key preferences.
- connection.addRequestProperty("origin", HTTP_ORIGIN);
- boolean doOutput = false;
- if (method.equals("POST")) {
- doOutput = true;
- connection.setDoOutput(true);
- connection.setFixedLengthStreamingMode(postData.length);
- }
- if (contentType == null) {
- connection.setRequestProperty("Content-Type", "text/plain; charset=utf-8");
- } else {
- connection.setRequestProperty("Content-Type", contentType);
- }
-
- // Send POST request.
- if (doOutput && postData.length > 0) {
- OutputStream outStream = connection.getOutputStream();
- outStream.write(postData);
- outStream.close();
- }
-
- // Get response.
- int responseCode = connection.getResponseCode();
- if (responseCode != 200) {
- events.onHttpError("Non-200 response to " + method + " to URL: "
- + url + " : " + connection.getHeaderField(null));
- connection.disconnect();
- return;
- }
- InputStream responseStream = connection.getInputStream();
- String response = drainStream(responseStream);
- responseStream.close();
- connection.disconnect();
- events.onHttpComplete(response);
- } catch (SocketTimeoutException e) {
- events.onHttpError("HTTP " + method + " to " + url + " timeout");
- } catch (IOException e) {
- events.onHttpError("HTTP " + method + " to " + url + " error: "
- + e.getMessage());
- }
- }
-
- // Return the contents of an InputStream as a String.
- private static String drainStream(InputStream in) {
- Scanner s = new Scanner(in).useDelimiter("\\A");
- return s.hasNext() ? s.next() : "";
- }
-}

Powered by Google App Engine
This is Rietveld 408576698