Fazer uma requisição HTTP sem o Ip ser bloqueado

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?