Php 从Android向Laravel发送json请求时内容类型不匹配
关于这个问题 我正在尝试使用Laravel编写的api通过截取发送JSON请求,当我请求时,请检查服务器以确保响应也应该是JSON类型……它说Php 从Android向Laravel发送json请求时内容类型不匹配,php,android,json,laravel,Php,Android,Json,Laravel,关于这个问题 我正在尝试使用Laravel编写的api通过截取发送JSON请求,当我请求时,请检查服务器以确保响应也应该是JSON类型……它说$request->expectsJson()为false 我做错什么了吗 拉雷维尔的期望是什么 Laravel代码:文件名:app\Exceptions\Handler.php protected function unauthenticated($request, AuthenticationException $exception) { \L
$request->expectsJson()
为false
我做错什么了吗
拉雷维尔的期望是什么
Laravel代码:文件名:app\Exceptions\Handler.php
protected function unauthenticated($request, AuthenticationException $exception)
{
\Log::info($request->headers->get('Content-Type'));
if ($request->expectsJson()) {
return response()->json(['Message' => trans("auth.failed")], 401);
}
return redirect()->guest(route('LoginForm'));
}
使用截击发送请求的Android Studio代码
String Token = Common.getSharedPreference(currentContext, "TokenData");
Map<String, Object> jsonParams = new HashMap<>();
jsonParams.put("api_token", "1" + Token);
jsonParams.put("Content-Type", "application/json; charset=utf-8");
jsonParams.put("Accept", "application/json");
String Url = Common.URL + Common.prefixURL + viewProfileURL + "?api_token=" + Token;
JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, Url,
new JSONObject(jsonParams),
new Response.Listener<JSONObject>()
{
@Override
public void onResponse(JSONObject response)
{
listener.getResult(null);
}
},
new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error)
{
}
});
String-Token=Common.getSharedReference(currentContext,“TokenData”);
Map jsonParams=newhashmap();
jsonParams.put(“api_令牌”,“1”+令牌);
put(“内容类型”,“应用程序/json;字符集=utf-8”);
jsonParams.put(“接受”、“应用程序/json”);
字符串Url=Common.Url+Common.prefixURL+viewProfileURL+“?api_token=“+token;
JsonObjectRequest=新的JsonObjectRequest(request.Method.POST,Url,
新的JSONObject(jsonParams),
新的Response.Listener()
{
@凌驾
公共void onResponse(JSONObject响应)
{
getResult(null);
}
},
新的Response.ErrorListener()
{
@凌驾
公共无效onErrorResponse(截击错误)
{
}
});
这些是HTTP头,不是请求正文参数
jsonParams.put("Content-Type", "application/json; charset=utf-8");
jsonParams.put("Accept", "application/json");
您需要重写Volley的Map getHeaders()
方法
。。。,
新的Response.ErrorListener()
{
...
}) {
@凌驾
公共映射getHeaders(){
//在这里创建地图
};
};
我还建议您以不同的方式构建URL
这些是HTTP头,不是请求正文参数
jsonParams.put("Content-Type", "application/json; charset=utf-8");
jsonParams.put("Accept", "application/json");
您需要重写Volley的Map getHeaders()
方法
。。。,
新的Response.ErrorListener()
{
...
}) {
@凌驾
公共映射getHeaders(){
//在这里创建地图
};
};
我还建议您以不同的方式构建URL
已添加。不确定您的API令牌。它似乎在URL中,而不是正文中,只是完美而已。谢谢分享这么多的知识+1和接受,并添加赏金。不确定您的API令牌。它似乎在URL中,而不是正文中,只是完美而已。谢谢分享这么多的知识+1和接受,赏金为urs