0

我正在尝试从我的 Android 应用程序中的 PHP 脚本请求 JSON 数据。

当我直接连接我的手机并直接访问“真正的”互联网网络服务器时,整个事情运行良好。但是,使用模拟器和本地主机(WAMP 安装)它根本不起作用。再次,直接在本地网络服务器上运行脚本,给了我预期的结果——只有当我使用模拟器在同一台机器上调用它时,麻烦就开始了。

以下是我迄今为止尝试过的组合(脚本位于根目录的子目录“zz”中):

private static String url_all_venues = "http://10.0.2.2/zz/pullvenuesjson.php";

或者

private static String url_all_venues = "http://10.0.2.2:80/zz/pullvenuesjson.php";

导致以下异常: E/JSON Parser(657): Error parsing data org.json.JSONException: Value

当我尝试以下操作时:

private static String url_all_venues = "http://10.0.2.2:8080/zz/pullvenuesjson.php";

代码“永远”运行,大约 5 分钟后出现超时错误。

知道如何解决这个问题,以便我也可以在本地网络服务器/模拟器上测试我的应用程序吗?很可能问题出在我的本地 Apache 配置中,但是,我不确定……</p>

编辑:

以下是一些似乎触发错误的代码:

            DefaultHttpClient httpClient = new DefaultHttpClient();
            String paramString = URLEncodedUtils.format(params, "utf-8");
            url += "?" + paramString;
            HttpGet httpGet = new HttpGet(url); 
            HttpResponse httpResponse = httpClient.execute(httpGet);
            HttpEntity httpEntity = httpResponse.getEntity();
            is = httpEntity.getContent();

“url”就是上面提到的那个。正如我在下面的评论中提到的,问题似乎来自本地 WAMP 网络服务器没有正确响应,因为当我通过 Internet 直接访问“真实”服务器时,代码工作正常(iow,除了更改之外什么都不做php 脚本的 Internet 地址的 URL)。奇怪的是,当我在本地运行脚本时,该脚本也可以正常工作,但不能通过模拟器运行。

4

1 回答 1

0

我终于想通了!我使用 Log.d(..) 记录了传输的数据,发现用户名/密码组合无效,因为我没有检查本地主机条件......脚本和应用程序现在都可以很好地检索数据,本地主机和网络。感谢您的询问,这帮助我找到了错误的根源!

[回答自己以避免 Q 显示为未回答]

于 2012-06-24T08:28:26.147 回答