0

このコードを書いて、サイトから html ソースを取得します。

        HttpURLConnection connection;
        OutputStreamWriter request = null;

        URL url = null;
        String response = null;
        String parameters = "aranan="+et.getText();

        try
        {
            url = new URL("http://www.fragmanfan.com/arama.asp");
            connection = (HttpURLConnection) url.openConnection();
            connection.setDoOutput(true);
            connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

            request = new OutputStreamWriter(connection.getOutputStream());
            request.write(parameters);
            request.flush();
            String line = "";
            InputStreamReader isr = new InputStreamReader(connection.getInputStream());
            BufferedReader reader = new BufferedReader(isr);
            StringBuilder sb = new StringBuilder();
            while ((line = reader.readLine()) != null)
            {
                sb.append(line + "\n");
            }
            // Response from server after login process will be stored in response variable.
            response = sb.toString();
            // You can perform UI operations here
            browser.loadDataWithBaseURL(null, response,"text/html", "UTF-8", null);

            isr.close();
            reader.close();
        }
        catch(IOException e)
        {
            // Error
        }
    }
});

ただし、1 つ問題があります。応答 (html ソースを持つ変数) が utf-8 形式ではありません。どうすればこれを修正できますか? ありがとう。

4

2 に答える 2

0

. . .

 InputStreamReader isr = new InputStreamReader(connection.getInputStream(),"ISO-8859-9"); 

. . .

于 2012-04-11T11:30:54.917 に答える
-1

あなたの応答は単一の文字列の HTML Web ページのように見えるため、ページの head タグに、コード化を定義するラベルが含まれていることを確認する必要があります。そうでない場合は、StringBuilder に自分で追加できます。これを行う方法は次のとおりです。

final StringBuilder sb = 
new StringBuilder("<html><head>"+ "<meta http-equiv=\"content-type\"content=\"text/html;charset=utf-8\" />"+ "</head><body>");
while ((line = reader.readLine()) != null) {
    sb.append(line + "\n");
    }
response = sb.toString();
sb.append(response);
sb.append("</body></html>");

その後、HTML を webview / ブラウザに適切にロードできます。(これは私にとってはうまくいったので、実際にうまくいくことは確かです =] )

pdは、あなたの質問に適切に答える答えを受け入れるようにしてください。そうすれば、人々はあなたの将来の質問に答え続けます. https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work

于 2012-04-11T00:22:25.203 に答える