package br.com.test.connectionHTTP;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.HttpURLConnection;
import java.net.URLConnection;
import java.net.URLEncoder;
public class HttpConect {
private static HttpURLConnection conn;
private static String location = "Rua mar vermelho - Barueri - Sao Paulo";
public final static String GEOCODE_URL = "http://maps.google.com/maps/geo";
public static String address= "Rua mar vermelho - Barueri - Sao Paulo";
public static void main(String[] args)
throws MalformedURLException, IOException{
try{
String[][] params = new String[][] {
{"q", location},
{"output", "xml"}
};
//Monta estrutura de paramentros
String encoded = URLEncoder.encode(address,"UTF-8");
URL url = new URL(encodeUrl(GEOCODE_URL,params));
conn = (HttpURLConnection) url.openConnection();
//envia dados
conn.getPermission();
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setDefaultUseCaches(false);
conn.setAllowUserInteraction(true);
OutputStreamWriter outputWriter = new OutputStreamWriter(conn.getOutputStream());
outputWriter.write(encoded);
outputWriter.flush();
//obtem a resposta
InputStreamReader inputReader = new InputStreamReader(conn.getInputStream());
BufferedReader bufferedReader = new BufferedReader( inputReader );
System.out.println( "\n** retorno da página web **" );
String linha = "";
while ( (linha = bufferedReader.readLine()) != null){
System.out.println(linha);
}
}catch(Exception e){
System.out.println(e.getMessage());
}
}
private static String encodeUrl(String baseUrl, String[][] params) {
String encodedParams = encodeParams(params);
if (encodedParams.length() > 0) {
encodedParams = "?"+ encodedParams;
}
return baseUrl + encodedParams;
}
private static String encodeParams(String[][] params) {
String p = "";
if (params != null) {
for (int i = 0; i < params.length; i++) {
String location = params[i][0];
String output = params[i][1];
if (output != null) {
try {
p += location + "=" + URLEncoder.encode(output, "UTF-8") + "&";
} catch (UnsupportedEncodingException ex) {
ex.getMessage();
}
}
}
if (p.length() > 0) {
p = p.substring(0, p.length() - 1);
}
}
return p;
}
Bom pessoal! se alguem poder me dar uma dica,tenho esse código que faz uma solicitação ao google passando o endereço, ate ai tudo bem ele me retorna uma xml com as coordenadas latitude e longitudes, mas depois da terceira chamada ele não retorna mais as coordenada, provavelmente eles bloquearam o ip , tem algum modo de fazer solicitações HTTP sem bloquearem o IP?