android – 为什么我的StringRequest永远在onErrorResponse方法?

前端之家收集整理的这篇文章主要介绍了android – 为什么我的StringRequest永远在onErrorResponse方法?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试从 Android中执行POST请求,以在PHPmyadmin中插入一些信息.

我在用什么

> Slim使连接和查询数据库存储在PHPmyadmin.
> XAMPP来模拟本地服务器.
> Volley来消费Android的请求.

Slim post功能对我来说没有任何问题,因为如果我在Postman应用程序上使用POST模式,数据正被插入到数据库中.

该URL可以接受两个由斜杠/分隔的参数.这里有一个例子:

http://localhost:8000/insert/Peter/25

我在其中插入一个名为Peter的年龄和25岁的新用户.

当我尝试使用Volley从Android调用相同的url时,会出现问题,因为它总是转到onErrorResponse方法.

这是我必须使用Android的请求的代码

RequestQueue queue = Volley.newRequestQueue(getContext());

String url = "http://localhost:8000/insert/" + name + "/" + age;
StringRequest postRequest = new StringRequest(Request.Method.POST,url,new Response.Listener<String>()
     {
         @Override
         public void onResponse(String response) {
            Log.d("Response","works well");
         }
     },new Response.ErrorListener()
     {
         @Override
         public void onErrorResponse(VolleyError error) {
            Log.d("Response","" + error.getMessage());
         }
     }
);

queue.add(postRequest);

但是它总是转到onErrorResponse方法.

我检查了

>我的XAMPP运行的电脑与智能手机的WIFI相同.
>我的电脑的IP更改本地主机也不会改变结果.

更新:

我注意到我在网址上使用了以太网适配器的IP而不是WIFI.

现在我可以在智能手机浏览器XAMPP默认网页上看到,如果我在URL上设置http://192.168.xx(我的WIFI的IP),但是我仍然有上面提到的问题,因为如果我设置http://192.168.xx :8000 / insert / Peter / 25该网址不被智能手机识别.

我认为问题可能是因为我使用内置的PHP服务器为Slim documentation建议.我使用以下命令:

PHP -S localhost:8000

所以我认为问题可以在这里产生,但我不知道如何解决它.

我失踪了什么

提前致谢!

解决方法

最后我注意到我的问题是什么.我将分享我所努力的几点.

>首先,我不需要使用内置的PHP服务器,因为它不是必需的.
>第二,最重要的是,我还必须使用在URL上存储Slim函数文件名称(我创建的自定义函数).
>第三,我不得不使用XAMPP运行的计算机的IP,以便手机可以访问它,而不是localhost(指的是手机的本地主机,所以它将永远不会工作).
>第四,两台设备(手机和电脑)都连接到同一个WIFI网络,所以当您的计算机上运行XAMPP时,手机可以访问它.

所以我不得不使用的最后一个URL是:

http://192.168.x.x/application/index.PHP/insert/Peter/25

您必须使用计算机和应用程序的WIFI网络的IP替换192.168.x.x与您使用Slim的文件夹的名称.

猜你在找的Android相关文章