Java tutorial
/* * Copyright (C) 2014 The CyanogenMod Project * * 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. */ package com.android.dialer.lookup; import android.text.Html; import org.apache.http.Header; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; import java.io.IOException; import java.util.regex.Matcher; import java.util.regex.Pattern; public class LookupUtils { private static final String USER_AGENT = "Mozilla/5.0 (X11; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0"; public static String httpGet(HttpGet request) throws IOException { HttpClient client = new DefaultHttpClient(); request.setHeader("User-Agent", USER_AGENT); HttpResponse response = client.execute(request); int status = response.getStatusLine().getStatusCode(); // Android's org.apache.http doesn't have the RedirectStrategy class if (status == HttpStatus.SC_MOVED_PERMANENTLY || status == HttpStatus.SC_MOVED_TEMPORARILY) { Header[] headers = response.getHeaders("Location"); if (headers != null && headers.length != 0) { HttpGet newGet = new HttpGet(headers[headers.length - 1].getValue()); for (Header header : request.getAllHeaders()) { newGet.addHeader(header); } return httpGet(newGet); } else { throw new IOException("Empty redirection header"); } } if (status != HttpStatus.SC_OK) { throw new IOException("HTTP failure (status " + status + ")"); } return EntityUtils.toString(response.getEntity()); } public static String firstRegexResult(String input, String regex, boolean dotall) { if (input == null) { return null; } Pattern pattern = Pattern.compile(regex, dotall ? Pattern.DOTALL : 0); Matcher m = pattern.matcher(input); return m.find() ? m.group(1).trim() : null; } public static String fromHtml(String input) { if (input == null) { return null; } return Html.fromHtml(input).toString().trim(); } }