为什么我的StringRequest总是在onErrorResponse方法?

Fra*_*ero 10 android slim

我正在尝试从Android执行POST请求以在我的内容中插入一些信息phpmyadmin.

我在用什么

  • Slim 与phpmyadmin存储的数据库建立连接和查询.
  • XAMPP模拟本地服务器.
  • Volley使用来自Android的请求.

Slim post函数对我没有任何问题,因为如果我POST在Postman应用程序上使用它,那么数据就会正确地插入到数据库中.

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

http://localhost:8000/insert/Peter/25
Run Code Online (Sandbox Code Playgroud)

其中我在数据库中插入名为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);
Run Code Online (Sandbox Code Playgroud)

但它总是采用这种onErrorResponse方法.

我检查了什么

  • 我运行XAMPP的计算机与智能手机的WIFI相同.
  • 更改localhost以获取我的计算机的IP也不会改变结果.

更新:

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

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

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

php -S localhost:8000
Run Code Online (Sandbox Code Playgroud)

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

我错过了什么?

提前致谢!

Fra*_*ero 5

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

  • 首先,我不需要使用内置的PHP服务器,因为它不是必需的.

  • 其次,最重要的是,我还必须在url上使用存储Slim函数的文件的名称(我创建的自定义函数).

  • 第三,我必须使用运行XAMPP的计算机的IP,这样手机就可以访问它而不是localhost(那指的localhost是手机,所以它永远不会工作).

  • 第四,两个设备(移动电话和计算机)都连接到同一个WIFI网络,因此当您在计算机中运行XAMPP时,移动电话可以访问它.

所以我必须使用的最终网址是:

http://192.168.x.x/application/index.php/insert/Peter/25
Run Code Online (Sandbox Code Playgroud)

您必须192.168.x.x使用计算机的WIFI网络的IP以及application您使用的文件夹的名称替换Slim.