Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从Android向Laravel发送json请求时内容类型不匹配_Php_Android_Json_Laravel - Fatal编程技术网

Php 从Android向Laravel发送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

关于这个问题

我正在尝试使用Laravel编写的api通过截取发送JSON请求,当我请求时,请检查服务器以确保响应也应该是JSON类型……它说
$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