code: public List<ViaCEPEndereco> getEnderecos(String uf, String localidade, String logradouro) throws IOException {
  		if (uf == null || uf.length() != 2){
  			throw new IllegalArgumentException("UF inválida - deve conter 2 caracteres: " + uf);
  		}
  		if (localidade == null || localidade.length() < 3){
  			throw new IllegalArgumentException("Localidade inválida - deve conter pelo menos 3 caracteres: " + localidade);
  		}
  		if (logradouro == null || logradouro.length() < 3){
  			throw new IllegalArgumentException("Logradouro inválido - deve conter pelo menos 3 caracteres: " + logradouro);
  		}
  		
  		String urlString = getHost() + uf + "/" + localidade + "/" + logradouro + "/json/";
  		URL url = new URL(urlString);
  		HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
  		try {
  			InputStream in = new BufferedInputStream(urlConnection.getInputStream());
  			List<ViaCEPEndereco> obj = getService().listOfFrom(ViaCEPEndereco.class, in);
  			return obj;
  		}
  		finally {
  			urlConnection.disconnect();
  		}
  	}
docs: Executa a consulta de endereços a partir da UF, localidade e logradouro
  
  @param uf Unidade Federativa. Precisa ter 2 caracteres.
  @param localidade Localidade (p.e. município). Precisa ter ao menos 3 caracteres.
  @param logradouro Logradouro (p.e. rua, avenida, estrada). Precisa ter ao menos 3 caracteres.
  
  @return Os endereços encontrado para os dados enviados, nunca <code>null</code>. Caso não sejam encontrados endereços, uma lista vazia é retornada.
  @throws IOException em casos de erro de conexão.
  @throws IllegalArgumentException para localidades e logradouros com tamanho menor do que 3 caracteres.