我正在测试libgdx库的net类,以便从传递给setUrl方法的页面获取json。这部分代码来自一个名为ApplicationScreen的类,它实现了libgdx Screen界面。这就是代码:
@Override
public void show() {
String requestContent = null;
httpRequest = new HttpRequest(Net.HttpMethods.GET);
httpRequest.setUrl("http://localhost/projects/SqlParser/index.php");
httpRequest.setHeader("Content-Type", "text/plain");
httpRequest.setContent(requestContent);
Gdx.net.sendHttpRequest(httpRequest, new HttpResponseListener() {
public void handleHttpResponse(HttpResponse httpResponse) {
final int statusCode = httpResponse.getStatus().getStatusCode();
System.out.println("HTTP Request status: " + statusCode);
System.out.println("Content:");
System.out.println(httpResponse.getResultAsString());
}
public void failed(Throwable t) {
System.out.println("HTTP request failed!");
}
});
}
当我运行桌面版本时,我在控制台窗口“HTTP请求状态:200”上收到此消息,然后是http请求的内容,因此代码执行了我期望它应该执行的操作。 当我运行html版本时,我在控制台“HTTP请求状态:0”上收到此消息。 有什么建议吗?
答案 0 :(得分:1)
您是否在Android清单中设置了权限?
How to add manifest permission to android application?
还需要检查您在传递url而不是localhost时使用的是您正在使用的计算机的IP。
希望这有一些帮助......即使它已经过期了。
答案 1 :(得分:1)
这可能为时已晚,但就我而言,事实证明这是违反同源政策的行为。
答案 2 :(得分:0)
我使用不安全版本的Google Chrome解决了这个问题,使用以下选项启动浏览器: - allow-file-access-from-files --disable-web-security