0

私はJavaを初めて使用し、この関数で立ち往生しています。

public String getFromUrl(String url){
    String content = "";
    try{
        URL U = new URL(url);
        URLConnection conn = U.openConnection();
        conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 (.NET CLR 3.5.30729)");
        BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
        String line;
        while((line = reader.readLine()) != null)content += line+"\r\n";
        reader.close();
    }
    catch(Exception e){}
    return content;
}

utf-8記号の代わりに常に疑問符が表示されます!私は何を間違えますか?

私はこの投稿を読みました

最初:バイト配列が使用される理由がわかりませんか?

2番目:この場合、「whileループ」はどのように表示されますか?

while((line = reader.readLine()) != null)content = line.getBytes("UTF-8");

私の日食は「ローカル変数の内容が初期化されていない可能性があります」のようなものを言っています

3番目:バイト配列を文字列に戻すにはどうすればよいですか?

それから私はこれを読みました。ブラウザのgetおよびpostリクエストをシミュレートする関数を作成しようとしているため、この投稿の方法を試しませんでした。URLクラスで実行する方法を見つけたようですので、他のクラスやメソッドは使いたくありません。

そして今、私が抱えている唯一の問題は、utf-8コンテンツを処理する方法です。

助けを借りて!

4

1 に答える 1

0

ごみ:

String encoding = conn.getContentEncoding();

null でない場合は、それをリーダーに使用できます。

そして、キャッチされた可能性のある例外をダンプします。

于 2013-02-22T21:21:11.363 に答える