Java は初めてで、Web サービスからブラジルの住所を取得するためのライブラリを作成しようとしていますが、応答を読み取ることができません。
クラスのコンストラクターにはresult
、応答を追加したいこの文字列があります。この変数に応答が入力されると、何をすべきかがわかります。
問題は次のとおりです。何らかの理由で、BufferedReader
オブジェクトが機能していないと思われるため、読み取る応答がありません:/
コードは次のとおりです。
package cepfacil;
import java.net.*;
import java.io.*;
import java.io.IOException;
public class CepFacil {
final String baseUrl = "http://www.cepfacil.com.br/service/?filiacao=%s&cep=%s&formato=%s";
private String zipCode, apiKey, state, addressType, city, neighborhood, street, status = "";
public CepFacil(String zipCode, String apiKey) throws IOException {
String line = "";
try {
URL apiUrl = new URL("http://www.cepfacil.com.br/service/?filiacao=" + apiKey + "&cep=" +
CepFacil.parseZipCode(zipCode) + "&formato=texto");
String result = "";
BufferedReader in = new BufferedReader(new InputStreamReader(apiUrl.openStream()));
while ((line = in.readLine()) != null) {
result += line;
}
in.close();
System.out.println(line);
} catch (MalformedURLException e) {
e.printStackTrace();
}
this.zipCode = zipCode;
this.apiKey = apiKey;
this.state = state;
this.addressType = addressType;
this.city = city;
this.neighborhood = neighborhood;
this.street = street;
}
}
コードがどのように機能するかを次に示します。次のようにオブジェクトを作成します。
String zipCode = "53416-540";
String token = "0E2ACA03-FC7F-4E87-9046-A8C46637BA9D";
CepFacil address = new CepFacil(zipCode, token);
// so the apiUrl object string inside my class definition will look like this:
// http://www.cepfacil.com.br/service/?filiacao=0E2ACA03-FC7F-4E87-9046-A8C46637BA9D&cep=53416540&formato=texto
// which you can check, is a valid url with content in there
簡潔にするためにこのコードの一部を省略しましたが、コンストラクターで呼び出されるすべてのメソッドはコードで定義されており、コンパイル エラーや実行時エラーは発生しません。
私はあなたが私に与えることができるどんな助けにも感謝します、そして私は最も簡単な可能な解決策を聞きたいです:)
前もって感謝します!
更新:問題を修正できるようになったので(問題を指摘してくれた@Uldzへの巨大な小道具)、オープンソースですhttp://www.rodrigoalvesvieira.com/cepfacil/