Android--执行HttpGet请求时HttpClient运行时异常

时间:2013-10-25 13:48:17

标签: android httpclient

我正在构建一个谷歌方向服务的查询,但执行方法中途崩溃了,这是代码

Uri.Builder b = Uri.parse("http://maps.googleapis.com/maps/api/directions/json").buildUpon();

                b.appendQueryParameter("origin", "The University of Hong KOng");
                b.appendQueryParameter("destination", "Lee Hysan Hall");
                b.appendQueryParameter("sensor", "false");
                b.appendQueryParameter("language", "en_US");

                String finalstr = b.build().toString();

                URI googledirectionservice = new URI(finalstr); 

                HttpGet mRequest = new HttpGet(googledirectionservice);
                HttpClient mClient = new DefaultHttpClient();

                response = mClient.execute(mRequest);

当我从浏览器访问它时构建的url很好,但是从HttpClient访问它是行不通的。你可以用

进行双重检查
http://maps.googleapis.com/maps/api/directions/json?origin=The%20University%20of%20Hong%20KOng&destination=Lee%20Hysan%20Hall&sensor=false&language=en_US

原因是什么?此外,如何使调试信息更具信息性? logcat中的当前文件只显示

threadid=... thread exiting with uncaught exception

1 个答案:

答案 0 :(得分:0)

尝试打开客户端的日志记录。说明示例herehere

在开发联网应用程序时,必须访问WIRE日志和HEADER日志。因此,根据您用于http实现的客户端,您应该谷歌,直到您知道如何公开相应的日志。如果您有WIRE和HEADERS的日志,那么您发布的问题的答案在日志详细信息中几乎是不言而喻的。

在我的情况下,我只是保持一个额外的jar文件,使用我的http实现构建并激活日志,当我需要调试网络时,我只是用那个jar重建我的应用程序。这完全取决于您选择的http库。

libs列表:

loopj

volley