関連するデータを取得して使用できるように、静的なブログ ページから html をダウンロードしたいと考えています。非同期手順には、robospice ライブラリを使用しています。
問題は、SimpleTextRequest を使用して、html の最初の行のみを取得することです。
<?xml version="1.0" encoding="UTF-8"?>
HTMLソース全体をダウンロードするには、どのリクエストを使用すればよいですか? サンプルで同様のものを見つけることができませんでした。そして、「robospice」をグーグルで検索すると、ほとんどがソースコードにつながりますが、このライブラリのチュートリアルに関してはほとんどないようです。
更新: 最初の回答に触発されて、このカスタム spicerequest を作成しました。
public class HtmlRequest extends SpiceRequest<String> {
private static String reqUrl;
public HtmlRequest(String url) {
super(String.class);
reqUrl = url;
aLog.d("HtmlRequest.HtmlRequest url : " + url);
}
@Override
public String loadDataFromNetwork() throws Exception {
String html = "";
HttpClient httpClient = new DefaultHttpClient();
StringBuilder builder = new StringBuilder();
HttpGet get = new HttpGet(reqUrl);
HttpResponse response = httpClient.execute(get);
StatusLine statusLine = response.getStatusLine();
int statusCode = statusLine.getStatusCode();
aLog.d("HtmlRequest.loadDataFromNetwork statusCode : " + statusCode);
if (statusCode == 200) {
/*
* Si todo fue ok, montamos la String con el HTML
*/
HttpEntity entity = response.getEntity();
InputStream content = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(content));
String line;
while ((line = reader.readLine()) != null) {
aLog.d("HtmlRequest.loadDataFromNetwork line : " + line);
builder.append(line);
}
html = builder.toString();
aLog.d("HtmlRequest.loadDataFromNetwork html : " + html);
}
httpClient.getConnectionManager().shutdown();
return html;
}
}
次に、私のアクティビティで私は持っています
spiceManager.execute(htmlRequest, "text", DurationInMillis.NEVER, new StaticItemRequestListener());
それでも、コンストラクター メソッドのログ以外に、カスタム リクエストで設定したログは取得されません。
問題は、htmlRequest が実行されていないように見えても、上記の xml ヘッダーをまだ取得していることです。私は何か間違ったことをしているに違いないのに、それを見ることができない...