Android Studio服务器连接失败

时间:2017-04-13 20:34:19

标签: java android http get android-volley

我正在尝试使用 Volley库执行GET请求(StringRequest)。该文件位于我的wamp服务器(txt文件)上。我的 IP地址 localhost 以及 10.0.2.2 的连接失败。

有2个错误:

  • 使用 localhost 10.0.2.2

java.net.ConnectException: failed to connect to localhost/127.0.0.1 (port 80) after 2500ms: isConnected failed: ECONNREFUSED (Connection refused)

  • 使用 IP地址

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);
}

3 个答案:

答案 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);
}