Java Android http请求读线
我试图通过http请求读取网页的源代码。 我的目的是从结果中读取一个整数值(price) 我正在使用bufferedReader来读取行。我不清楚哪种方法可以存储我想要的数据 下面是我使用的代码:Java Android http请求读线,java,android,httprequest,bufferedreader,readline,Java,Android,Httprequest,Bufferedreader,Readline,我试图通过http请求读取网页的源代码。 我的目的是从结果中读取一个整数值(price) 我正在使用bufferedReader来读取行。我不清楚哪种方法可以存储我想要的数据 下面是我使用的代码: BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8") ); String data = null; String webPage = ""; while ((data = reader.readLin
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8") );
String data = null;
String webPage = "";
while ((data = reader.readLine()) != null){
webPage += data + "\n";
}
更新:
这是http请求的示例结果:
more...<div class="price-block--grid">
<div class="old-price-wrap">
<!-- begin old price -->
<div class="product-card__old-price">RM 1,500.00</div>
<!-- end old price -->
<!-- begin sale -->
<div class="product-card__sale">- 6%</div>
<!-- end sale -->
</div>
<div class="product-card__price">RM 1,408.00</div>....more
更多。。。
1500.00马来西亚令吉
- 6%
1408.00 RM…更多
我想知道我是否有办法只检索并存储数据变量的价格值(例如1408)?如果您确定每一行都是整数,而不仅仅是创建一个整数变量或数组(如果您有多行)并将字符串解析为整数:
integer.parseInt(数据)代码>如果变量数据中的其他字符不是数字,则可以使用正则表达式删除非数字:
data = data.replaceAll("\\D+","");
希望这能回答您的问题。没有默认方法解析所有html并提取所需部分。您可以将网页中的所有html保存为字符串,然后使用如下代码解析字符串以获取价格:
String toFind = "product-card__price\">";
String str1 = webPage.substring(webPage.indexOf(toFind) + toFind.length());
String priceString = str1.substring(0, str1.indexOf("<"));
int price = Integer.parseInt(priceString.replaceAll("\\D+",""));
String toFind=“产品卡价格\”>;
String str1=webPage.substring(webPage.indexOf(toFind)+toFind.length());
字符串priceString=str1.substring(0,str1.indexOf(“=0”){
String-tokenString=remaingtext.substring(remaingtext.indexOf(to)+to.length());
String priceString=tokenString.substring(0,tokenString.indexOf("您的故事尚未完成。请继续。以一个问题结束。数据将存储在网页变量中。抱歉,我已更新了httpRequest的输出,httpRequest的输出将不总是整数。知道吗?我已更新了我的答案,现在检查!您可以像这样解析响应并获取价格!!嗨,Asif Mujteba,谢谢。这是真的解决我的问题,但我必须存储超过1个价格。因此,为了保存所有价格,我必须在str1之后进行另一个循环。谢谢!!这真的很有帮助。很抱歉问这么长的问题,因为我还是Android编程的初学者。很抱歉,我更新了上面的httpRequest。everyline不仅包含整数,还包含其他字符还有符号,知道吗?
String to = "product-card__price\">";
String remainingText = webPage;
ArrayList<Integer> integers = new ArrayList<>();
while (remainingText.indexOf(to) >= 0) {
String tokenString = remainingText.substring(remainingText.indexOf(to) + to.length());
String priceString = tokenString.substring(0, tokenString.indexOf("<"));
int price = Integer.parseInt(priceString.replaceAll("\\D+",""));
integers.add(price);
remainingText = tokenString;
}