Android:Volley NoConnectionError

时间:2016-08-20 20:57:01

标签: android http-post android-volley

我试图连接到REST服务器(我用Spark创建) 通过Android。 我可以使用POSTMAN(Chrome Addon)发送POST请求并获取内容 我想,但是当我尝试从我的Android发送POST请求时 设备,我收到以下错误:

E/error: com.android.volley.NoConnectionError: java.net.ConnectException: failed to connect to /127.0.0.1 (port 4567) after 2500ms: isConnected failed: ECONNREFUSED (Connection refused)

这是服务器部分:

Spark.post("/up", new Route()
    {
        public Object handle(Request req, Response res)
        {
            System.out.println(req.queryParams());
            return "its something";
        }
    });

这是Android部分:

public void sendHTTPRequest()
{
    RequestQueue MyRequestQueue = Volley.newRequestQueue(this);

    String url = "http://127.0.0.1:4567/up";
    StringRequest MyStringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            //This code is executed if the server responds, whether or not the response contains data.
            //The String 'response' contains the server's response.
        }
    }, new Response.ErrorListener() { //Create an error listener to handle errors appropriately.
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.e("error",error.toString());
        }
    }) {
        protected Map<String, String> getParams() {
            Map<String, String> MyData = new HashMap<String, String>();
            MyData.put("Field", "Value"); //Add the data you'd like to send to the server.
            return MyData;
        }
    };
    MyRequestQueue.add(MyStringRequest);
}

我还在清单文件中添加了重要权限。

我搜索了几个小时,但我无法解决我的问题:( 我希望你能帮助我。 最好的祝福, 菲利克斯

4 个答案:

答案 0 :(得分:6)

127.0.0.1 是Android设备上的环回地址。您需要计算机的IP地址。我认为你正在某种模拟器或Android设备上运行。如果您的服务器在本地Wifi网络上运行,请使用 Wifi适配器的IP地址,然后将 127.0.0.1 替换为该地址。

TLDR;使用服务器的IP地址而不是127.0.0.1

Linux:ifconfig [wlan0]

Windows:ipconfig

答案 1 :(得分:0)

检查您的xammp或wamp连接。如果mysql和apache服务未处于活动状态,则启动所有服务并运行您的应用程序,它会提供正确的输出

答案 2 :(得分:0)

如果您在本地进行测试,请尝试检查IP地址(在打开cmd的窗口中运行ipconfig) 然后再次输入您的IP地址。

这是一个例子

字符串url = http://127.0.0.1:8080/user <-错误

字符串url =“ http://172.16.5.240:8080/user <-有用

答案 3 :(得分:0)

Android emulator uses 10.0.2.2作为主机环回接口。使用它代替模拟器本身的127.0.0.1。