Если у вас нет контроля над post.php
и вы не можете заставить его возвращать то, что вам нужно, без HTML-тегов (а-ля веб-сервисы), вам придется анализировать возвращаемый им HTML-документ.
Используйте HTML Parser , регулярные выражения не очень надежны для этого.
Rough Snippet для анализа тега <body>
с HTMLParser:
(Обязательно укажите htmlparser.jar
)
import org.htmlparser.Node;
import org.htmlparser.Parser;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;
import org.htmlparser.filters.TagNameFilter;
import org.htmlparser.tags.BodyTag;
public class HTMLParserTest {
public static String grabBodyTag (String url) {
if(!url.startsWith("http://")){url = "http://" + url;}
Parser parser = new Parser();
TagNameFilter filter = new TagNameFilter("body");
try {
parser.setResource(url);
NodeList list = parser.parse(filter);
Node node = list.elementAt(0);
if (node instanceof BodyTag) {
BodyTag tag = (BodyTag) node;
return tag.toPlainTextString(); //other formats are available
}
} catch (ParserException e) {
e.printStackTrace();
}
return "found no body tag...";
}
public static void main(String... args){
System.out.println(grabBodyTag("google.com"));
}
}
Это дает String
с «Web Images Видео Карты Новости Книги Gmail more ...» [опущен], в вашем случае он вернет String
с «1» в нем, возможно, с пробелом в нем (как ваша пастина показывает), вам нужно trim
, а затем сделать преобразование в число.
Заключительное примечание: создание post.php
с (и только) следующим кодом сделает вашу жизнь намного проще , если вам не нужен этот скрипт для каких-либо других вещей, которые чтобы вернуть этот результат.
<?php
$number = 1; // or whatever login to get it.
echo $number;
?>