Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Android:从网页获取html时遇到问题_Php_Android_Html_Request - Fatal编程技术网

Php Android:从网页获取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

我正在编写一个android应用程序,它应该从php页面获取html,并使用页面中解析的数据。我在这里搜索了这个问题,最后使用了另一张海报上的示例代码。以下是我目前的代码:

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权限添加到清单文件:(