使用Android Volley致电Laravel时的空请求
问题描述:
我想从我的Android应用程序向Laravel应用程序发送一些数据。如果我使用邮差测试Laravel API,则所有发布的数据都会被正确接收。但是,调用从Android的API时的Laravel应用程序接收一个空请求和POST参数是空的:使用Android Volley致电Laravel时的空请求
机器人:
StringRequest sr = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.v("TAG",response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.v("TAG",error.toString());
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> params = new HashMap<String, String>();
params.put("user","ASDASDADSAS");
params.put("pass","ASDASDADSAS");
params.put("comment", "ASDASDADSAS");
return params;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String,String> params = new HashMap<String, String>();
params.put("Content-Type","application/x-www-form-urlencoded");
return params;
}
};
queue.add(sr);
响应:
<pre></pre><pre></pre><pre></pre>{"status":"500","data":[],"message":"**** parameter is either missing or empty"}
1,500是硬编码的,而不是服务器实际抛出的东西。
2,创建test.php文件并回显$ _POST时,发送的数据是在laravel之外收到的。
Laravel: - 已将路由添加到csrf例外。
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
class APIController extends Controller
{
public function postitems(Request $request){
echo "<pre>";
print_r($request->input('user')); // null
echo "</pre>";
echo "<pre>";
print_r($request->all()); // null
echo "</pre>";
$rawPostData = file_get_contents("php://input");
echo "<pre>";
print_r($rawPostData); //null
echo "</pre>";
//handles request and api Call and gives response if all the data is present
}
}
答
奥凯想通了....
不包括尾随/在你的网址或者由于某些原因Laravel删除所有帖子的参数。
答
- 首先在邮递员执行API为500,请验证是内部服务器错误。
- 如果它正在工作,然后尝试从后端进行调试。
- 您可以添加回显以打印帖子参数以验证它是否已正确接收。
1,已经完成了500个硬编码,而不是服务器实际发送的内容。 2,创建test.php文件并回显$ _POST时,发送数据在laravel之外被接收。 3,它们是空的 –