HttpURLConnectionを使用してWebページのコンテンツを取得するAndroidプログラムを作成しています。私はJavaとAndroidの両方に不慣れです。
問題は次のとおりです。リーダーはページソース全体を読み取りますが、最後の反復では、最後の部分のstringBufferに追加されません。
debbugerを使用して、最後のループ反復で文字列バフが作成されることを確認しましたが、stringBufferはそれを追加しません。
取得したコンテンツを解析する必要があります。文字列を使用するよりも、解析のためにコンテンツを処理するためのより良い方法はありますか?Javaの文字列サイズは、使用可能なヒープサイズによってのみ制限されることを他の多くのサイトで読んだことがあります。私もStringBuilderを試してみました。
何が問題になるのかは誰でも知っています。ところで、コードの改善を提案してください。
ありがとう!
URL u;
try {
u = new URL("http://feeds.timesonline.co.uk/c/32313/f/440134/index.rss");
HttpURLConnection c = (HttpURLConnection) u.openConnection();
c.setRequestProperty("User-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 2.0.50727)");
c.setRequestMethod("GET");
c.setDoOutput(true);
c.setReadTimeout(3000);
c.connect();
StringBuffer stringBuffer = new StringBuffer("");
InputStream in = c.getInputStream();
InputStreamReader inp = new InputStreamReader(in);
BufferedReader reader = new BufferedReader(inp);
char[] buffer = new char[3072];
int len1 = 0;
while ( (len1 = reader.read(buffer)) != -1 )
{
String buff = new String(buffer,0,len1);
stringBuffer.append(buff);
}
String stranica = new String(stringBuffer);
c.disconnect();
reader.close();
inp.close();
in.close();