Php Android:从网页获取html时遇到问题
我正在编写一个android应用程序,它应该从php页面获取html,并使用页面中解析的数据。我在这里搜索了这个问题,最后使用了另一张海报上的示例代码。以下是我目前的代码:Php Android:从网页获取html时遇到问题,php,android,html,request,Php,Android,Html,Request,我正在编写一个android应用程序,它应该从php页面获取html,并使用页面中解析的数据。我在这里搜索了这个问题,最后使用了另一张海报上的示例代码。以下是我目前的代码: HttpClient client = new DefaultHttpClient(); HttpGet request = new HttpGet(url); try { Log.d("first","first"); HttpResponse response = clie
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
try {
Log.d("first","first");
HttpResponse response = client.execute(request);
String html = "";
Log.d("second","second");
InputStream in = response.getEntity().getContent();
Log.d("third","third");
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
Log.d("fourth","fourth");
StringBuilder str = new StringBuilder();
String line = null;
Log.d("fifth","fifth");
while((line = reader.readLine()) != null) {
Log.d("request line",line);
}
in.close();
} catch (ClientProtocolException e) {
} catch (IOException e) {
// TODO Auto-generated catch block
Log.d("error", "error");
}
Log.d("end","end");
}
正如我之前所说,url是一个php页面。每当我运行这段代码时,它都会打印出第一条消息,然后打印出错误消息,最后打印出结束消息。我尝试过修改标题,但没有成功。任何帮助都将不胜感激,因为我不知道我做错了什么
谢谢
当我执行e.getMessage()并将其打印出来时,日志中只显示stanford.edu。希望有帮助。以下是堆栈跟踪:
01-17 16:58:27.687:WARN/System.err(452):java.net.UnknownHostException:stanford.edu
01-17 16:58:27.947:WARN/System.err(452):位于java.net.InetAddress.lookupHostByName(InetAddress.java:506)
01-17 16:58:27.947:WARN/System.err(452):位于java.net.InetAddress.getAllByNameImpl(InetAddress.java:294)
01-17 16:58:27.977:WARN/System.err(452):位于java.net.InetAddress.getAllByName(InetAddress.java:256)
01-17 16:58:27.977:WARN/System.err(452):位于org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:136)
01-17 16:58:28.027:WARN/System.err(452):位于org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
01-17 16:58:28.027:WARN/System.err(452):位于org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
01-17 16:58:28.047:WARN/System.err(452):位于org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:348)
01-17 16:58:28.057:WARN/System.err(452):位于org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
01-17 16:58:28.057:WARN/System.err(452):位于org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
01-17 16:58:28.117:WARN/System.err(452):位于org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
01-17 16:58:28.117:WARN/System.err(452):位于edu.stanford.cs247.util.ColorHandler.getInfo(ColorHandler.java:44)
01-17 16:58:28.217:WARN/System.err(452):位于edu.stanford.cs247.util.ColorHandler.handleMessage(ColorHandler.java:70)
01-17 16:58:28.217:WARN/System.err(452):位于android.os.Handler.dispatchMessage(Handler.java:99)
01-17 16:58:28.247:WARN/System.err(452):位于android.os.Looper.loop(Looper.java:123)
01-17 16:58:28.257:WARN/System.err(452):位于android.app.ActivityThread.main(ActivityThread.java:3647)
01-17 16:58:28.257:WARN/System.err(452):位于java.lang.reflect.Method.invokenactive(本机方法)
01-17 16:58:28.297:WARN/System.err(452):位于java.lang.reflect.Method.invoke(Method.java:507)
01-17 16:58:28.297:WARN/System.err(452):位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-17 16:58:28.327:WARN/System.err(452):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-17 16:58:28.337:WARN/System.err(452):在dalvik.System.NativeStart.main(本机方法)首先,
Log.d()
方法调用可能类似于Log.d(“MyAppName”,“Message”)
而不是Log.d(“Message”,“Message”)
通过这种方式,您可以在LogCat中为应用程序创建一个过滤器,并仅查看您的消息。(在Eclipse上检查此项)
对于您的问题,请尝试在catch块中放置一些有用的消息,例如:
try{
...
} catch (IOException e){
Log.d("MyAppName", e.getMessage());
}
这将向您显示引发异常的问题。
考虑查看示例代码,<代码> GuturLCopTune()/Cuth>尽你所能地做。< /P>
祝你好运,stacktrace的第一行写着: java.net.UnknownHostException: 斯坦福大学 你应该学会阅读。快速搜索“UnknownHostException”会告诉您: 抛出以指示IP地址 无法确定主机的名称
这意味着它不能将stanford.edu变成IP。你可能需要
www.stanford.edu
或类似的东西。尝试在命令行上ping地址ping www.stanford.edu
,并确保它解析为ip地址。我忘记在清单文件中添加internet权限。添加到清单
@GojaN Log.d(“MyClass”,“MyMessage”,e);可能会更好。这样你就可以得到完整的stacktrace了真是太棒了。也许我更喜欢Log.d(“MyClass”,e.getMessage(),e)。这样你就可以把两者结合起来:)当我打印信息时,上面只写了我的大学的名字。edu@GojaN实际上,当您要求它打印包含消息文本的stacktrace时。@Kyle您打印了完整的stacktrace吗?请编辑您的问题,将其包括在内。我以前这样做过,但无济于事:(我知道如何读取堆栈跟踪,我只是在查找UnknownHostException时找不到任何对我有帮助的内容。)HostException:(正在解析到ip地址。我没有将internet权限添加到清单文件:(