Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: src/org/adblockplus/android/AndroidWebRequest.java

Issue 5697499218051072: Usage of new API, cleanups (reduced) (Closed)
Patch Set: Even more review issues fixed. Created April 28, 2014, 10:18 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /*
2 * This file is part of Adblock Plus <http://adblockplus.org/>,
3 * Copyright (C) 2006-2014 Eyeo GmbH
4 *
5 * Adblock Plus is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 3 as
7 * published by the Free Software Foundation.
8 *
9 * Adblock Plus is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18 package org.adblockplus.android;
19
20 import java.io.InputStream;
21 import java.net.HttpURLConnection;
22 import java.net.URL;
23 import java.util.List;
24
25 import org.adblockplus.libadblockplus.AdblockPlusException;
26 import org.adblockplus.libadblockplus.HeaderEntry;
27 import org.adblockplus.libadblockplus.ServerResponse;
28 import org.adblockplus.libadblockplus.WebRequest;
29 import org.adblockplus.libadblockplus.ServerResponse.NsStatus;
30
31 import android.util.Log;
32
33 public class AndroidWebRequest extends WebRequest
34 {
35 public final String TAG = Utils.getTag(WebRequest.class);
36
37 private static final int INITIAL_BUFFER_SIZE = 65536;
38 private static final int BUFFER_GROWTH_DELTA = 65536;
39
40 @Override
41 public ServerResponse httpGET(final String urlStr, final List<HeaderEntry> hea ders)
42 {
43 try
44 {
45 final URL url = new URL(urlStr);
46 Log.d(this.TAG, "Downloading from: " + url);
47
48 final HttpURLConnection connection = (HttpURLConnection) url.openConnectio n();
49 connection.setRequestMethod("GET");
50 connection.connect();
51
52 final ServerResponse response = new ServerResponse();
53 response.setResponseStatus(connection.getResponseCode());
54
55 if (response.getResponseStatus() == 200)
56 {
57 final InputStream in = connection.getInputStream();
58
59 final byte[] buffer = new byte[4096];
60
61 byte[] out = new byte[INITIAL_BUFFER_SIZE];
62
63 int pos = 0;
64 for (;;)
65 {
66 final int read = in.read(buffer);
67 if (read < 0)
68 {
69 break;
70 }
71 if (pos + read > out.length)
72 {
73 final byte[] old = out;
74 out = new byte[out.length + BUFFER_GROWTH_DELTA];
75 System.arraycopy(old, 0, out, 0, pos);
76 }
77 System.arraycopy(buffer, 0, out, pos, read);
78 pos += read;
79 }
80
81 connection.disconnect();
82
83 response.setStatus(NsStatus.OK);
84 response.setResponse(new String(out, 0, pos, "utf-8"));
85 }
86 else
87 {
88 response.setStatus(NsStatus.ERROR_FAILURE);
89 }
90 return response;
91 }
92 catch (final Throwable t)
93 {
94 throw new AdblockPlusException("WebRequest failed", t);
95 }
96 }
97 }
OLDNEW
« no previous file with comments | « src/org/adblockplus/android/AndroidUpdaterCallback.java ('k') | src/org/adblockplus/android/ConfigurationActivity.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld