我在用什么
> 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