好的,所以我重新定义了我的最后一个程序......这里是:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
public class asp {
public static void main(String[] args) {
try {
URL game = new URL("http://localhost/mystikrpg/post.php?players");
URLConnection connection = game.openConnection();
BufferedReader in = new BufferedReader(new
InputStreamReader(connection.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println(inputLine);
}
in.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题?当我运行它...我得到整个页面...甚至代码来源,如html标签的开头一直到主体和html标签的结尾.
当真的...我希望它输出是1 ....我能看到它的唯一方法是,如果我拆分字符串<body>和</body>...
咩.救命?
Pas*_*ent 12
问题?当我运行它...我得到整个页面...甚至代码来源,如html标签的开头一直到主体和html标签的结尾.
嗯,这基本上就是一个HTML页面; 这就是你得到的.现在,如果您不想手动解析内容,请使用HTML Parser.有很多但我会推荐Jsoup,一个最优雅的可用库(干净漂亮的API,像CSS选择器的jQuery,非冗长的元素迭代等).演示:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class JsoupDemo {
public static void main(String[] args) throws Exception {
URL url = new URL("http://localhost/mystikrpg/post.php?players");
Document doc = Jsoup.parse(url, 3*1000);
String text = doc.body().text();
System.out.println(text); // outputs 1
}
}
Run Code Online (Sandbox Code Playgroud)
看马云,没有手!
PS:作为旁注,我必须说我同意其他一些答案,你应该考虑生成除HTML,JSON甚至原始文本之外的其他东西(如果你真的需要,至少可以替代HTML版本)它).
除非您可以控制post.php并且能够在没有HTML标记(一个Web服务)的情况下使其返回所需的内容,否则您将必须解析它返回的HTML文档.
使用HTML Parser,正则表达式对此不太可靠.
<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"));
}
}
Run Code Online (Sandbox Code Playgroud)
这给了String"Web图像视频地图新闻图书Gmail更多..."[省略],在你的情况下,它将返回一个String带有"1"的可能有空格(如你的pastebin所示),你必须这样trim做然后转换为数字.
关闭注:制作post.php与(只)下面的代码将让你的生活更容易,如果你不需要该脚本,这回这个结果的任何其他东西.
<?php
$number = 1; // or whatever login to get it.
echo $number;
?>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6336 次 |
| 最近记录: |