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: Removed even more unrelated changes Created April 28, 2014, 9:42 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 BUFFER_GROWTH_DELTA = 65536;
38
39 @Override
40 public ServerResponse httpGET(final String urlStr, final List<HeaderEntry> hea ders)
41 {
42 try
43 {
44 final URL url = new URL(urlStr);
45 Log.d(this.TAG, "Downloading from: " + url);
46
47 final HttpURLConnection connection = (HttpURLConnection) url.openConnectio n();
48 connection.setRequestMethod("GET");
49 connection.connect();
50
51 final ServerResponse response = new ServerResponse();
52 response.setResponseStatus(connection.getResponseCode());
53
54 if (response.getResponseStatus() == 200)
55 {
56 final InputStream in = connection.getInputStream();
57
58 final byte[] buffer = new byte[4096];
59
60 byte[] out = new byte[65536];
Felix Dahlke 2014/04/28 10:09:41 Also use BUFFER_GROWTH_DELTA here? That's why I su
René Jeschke 2014/04/28 10:18:34 Ah, well, this is technically another constant.
Felix Dahlke 2014/04/28 10:20:57 Feel free to hard code both values then. Whatever
61
62 int pos = 0;
63 for (;;)
64 {
65 final int read = in.read(buffer);
66 if (read < 0)
67 {
68 break;
69 }
70 if (pos + read > out.length)
71 {
72 final byte[] old = out;
73 out = new byte[out.length + BUFFER_GROWTH_DELTA];
74 System.arraycopy(old, 0, out, 0, pos);
75 }
76 System.arraycopy(buffer, 0, out, pos, read);
77 pos += read;
78 }
79
80 connection.disconnect();
81
82 response.setStatus(NsStatus.OK);
83 response.setResponse(new String(out, 0, pos, "utf-8"));
84 }
85 else
86 {
87 response.setStatus(NsStatus.ERROR_FAILURE);
88 }
89 return response;
90 }
91 catch (final Throwable t)
92 {
93 throw new AdblockPlusException("WebRequest failed", t);
94 }
95 }
96 }
OLDNEW

Powered by Google App Engine
This is Rietveld