我正在尝试使用 Volley库执行GET请求(StringRequest)。该文件位于我的wamp服务器(txt文件)上。我的 IP地址, localhost 以及 10.0.2.2 的连接失败。
有2个错误:
java.net.ConnectException: failed to connect to localhost/127.0.0.1 (port 80) after 2500ms: isConnected failed: ECONNREFUSED (Connection refused)
java.net.ConnectException: failed to connect to /myIP (port 80) after 5000ms: isConnected failed: EHOSTUNREACH (No route to host)
我授予了在androidmanifest上访问互联网的权限
这是我的代码:
public void volleyTest(Context ctx) {
RequestQueue queue = Volley.newRequestQueue(ctx);
String url ="http://localhost/file.txt";
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.i("debug","Response is: "+ response.substring(0,500));
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.i("debug",error.getMessage());
}
});
queue.add(stringRequest);
}
答案 0 :(得分:0)
首先检查api是否可以使用您的IP而不是localhost从您的计算机浏览器访问,如果它是好的。再次从连接在同一网络wifi上的移动浏览器中检查。然后,不要使用localhost并始终在您的api url中使用ips
答案 1 :(得分:0)
您需要获取具有端口号的计算机的IP地址(使用ipconfig)并使用该地址代替&#39; localhost&#39;在你的String url中。 只需更改本地主机&#39;到您的地址,如&#39; 192.168 ......:8080&#39;并确保你向androidmanifest添加持久性
<uses-permission android:name="android.permission.INTERNET" />
答案 2 :(得分:0)
我使用相同的设置在我的机器中运行代码, 从android / volley部分一切都很好,我能够使用以下代码访问我的文件,它基本上是你的一些小修改。
您使用的是哪个版本的Wamp? - 我建议你查看httpd.conf以允许访问here
中的建议我在我的机器上运行的代码,如果有帮助:
public void volleyTest(Context ctx) {
RequestQueue queue = Volley.newRequestQueue(ctx);
String url = "http://192.168.15.28/file.txt";
com.android.volley.Response.Listener<String> listender = new com.android.volley.Response.Listener<String>() {
@Override
public void onResponse(String response) {
System.out.println(response);
}
};
com.android.volley.Response.ErrorListener error = new com.android.volley.Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
System.out.println(error.getLocalizedMessage());
}
};
StringRequest t = new StringRequest(Request.Method.GET, url, listender, error);
queue.add(t);
}