Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.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
Java 使用postman和android向Laravel发送json_Java_Php_Android_Json_Laravel - Fatal编程技术网

Java 使用postman和android向Laravel发送json

Java 使用postman和android向Laravel发送json,java,php,android,json,laravel,Java,Php,Android,Json,Laravel,我试图使用postman将json发送到Lavavel,但我遇到了这个错误 这是我的json代码: { "email":"test@test.com", "password":"testtest" } 这是Laravel代码: Route::get('/r','test@store'); 及 在android日志上: E/截击:[299]基本网络。性能请求:的意外响应代码500 D/错误:com.android.volley.ServerErro 我的android代码是:

我试图使用postman将json发送到Lavavel,但我遇到了这个错误

这是我的json代码:

{
    "email":"test@test.com",
    "password":"testtest"
}
这是Laravel代码:

Route::get('/r','test@store');

在android日志上:

E/截击:[299]基本网络。性能请求:的意外响应代码500 D/错误:com.android.volley.ServerErro

我的android代码是:

public class ApiService {


    private final Context context;

    public ApiService(Context context){
        this.context=context;
    }

            public void loginUser(String email, String password, final OnLoginResponse onLoginResponse){
                JSONObject requestJsonObject=new JSONObject();
                try {
                    requestJsonObject.put("email",email);
                    requestJsonObject.put("password",password);


                    JsonObjectRequest request=new JsonObjectRequest(Request.Method.GET, "http://192.168.1.4:8000/r",requestJsonObject , new Response.Listener<JSONObject>() {
                        @Override
                        public void onResponse(JSONObject response) {
                            Log.d("response",response.toString());
                        }

                    }, new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
                            Log.d("error",error.toString());
                        }
                    }) {
                        @Override
                        public Map getHeaders() throws AuthFailureError {
                            HashMap headers = new HashMap();
                            headers.put("Content-Type", "application/json");
                            return headers;
                        }
                    };
                    request.setRetryPolicy(new DefaultRetryPolicy(18000,DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
                    Volley.newRequestQueue(context).add(request);
                } catch (JSONException e) {
                    Log.e(TAG, "loginUser: "+e.toString());
                }
            }

    public interface OnLoginResponse{
        void onResponse(boolean success);
    }
}
公共类API服务{
私人最终语境;
公共ApiService(上下文){
this.context=context;
}
public void登录用户(字符串电子邮件、字符串密码、最终OnLoginResponse OnLoginResponse){
JSONObject requestJsonObject=新建JSONObject();
试一试{
requestJsonObject.put(“email”,email);
requestJsonObject.put(“密码”,password);
JsonObjectRequest=新的JsonObjectRequest(request.Method.GET)http://192.168.1.4:8000/r,requestJsonObject,新响应。侦听器(){
@凌驾
公共void onResponse(JSONObject响应){
Log.d(“response”,response.toString());
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
Log.d(“error”,error.toString());
}
}) {
@凌驾
公共映射getHeaders()引发AuthFailureError{
HashMap headers=新的HashMap();
headers.put(“内容类型”、“应用程序/json”);
返回标题;
}
};
request.setRetryPolicy(新的DefaultRetryPolicy(18000,DefaultRetryPolicy.DEFAULT\u MAX\u RETRIES,DefaultRetryPolicy.DEFAULT\u BACKOFF\u MULT));
newRequestQueue(上下文).add(请求);
}捕获(JSONException e){
Log.e(标记“loginUser:+e.toString());
}
}
公共接口OnLoginResponse{
void onResponse(布尔成功);
}
}

如果你想发送数据,你需要在邮递员身上使用POST或PUT方法,特别是如果你发送的是一具尸体,这意味着你正在发送数据。Get方法用于从服务检索数据。 请查看以获取更多信息。 你的邮递员应该看起来像

最后在你的android代码中尝试更改这一行

JsonObjectRequest request=new JsonObjectRequest(Request.Method.GET, "http://192.168.1.4:8000/r",requestJsonObject , new Response.Listener<JSONObject>() {
JsonObjectRequest-request=新的JsonObjectRequest(request.Method.GET,”http://192.168.1.4:8000/r,requestJsonObject,新响应。侦听器(){

使用
Request.Method.POST

我希望这有助于人们搜索如何向laravel发送JSON数据,不仅针对android应用程序,而且针对所有应用程序。此解决方案的目标是确定是否可以向laravel发送JSON数据

首先,您必须从下载postman,以测试您的API是否真正正常工作

使用postman创建post请求。请确保遵循下面的示例数据

确保设置了与控制器关联的路由

这是控制器的一部分,它将显示您发送的JSON数据是否被成功接受。

此外,如果您试图向laravel发送POST数据,默认情况下,如果您打算使用laravel的MVC,他们会提供一个适用于表单的CSRF令牌。同时,我们将记录并注释它。只需转到app/http/kernel.php

现在您将从前面的代码中得到以下结果

$json = json_decode($request['json']);
echo $json->{'email'};
echo "\n";
echo $json->{'password'};

我们测试了我们能够将数据发送到laravel。我希望这真的有帮助。

您的laravel路由方法应该是POST发送数据。我看到您正在使用GET方法将POSTANI的路由更改为POST,但在android上获取错误419未知状态(在postman上)和GET E/Volley:[306]BasicNetwork.performRequest:D的意外响应代码405/错误:com.android.volley。ClientError@mohammadmghi如果出现419错误,则可能是您的post请求没有csrf令牌。此路由是否
route::get('/r','test@store')
在api.php或web.php中定义?@ViperTecPro在web.phpi中更改为POST,但ger错误:E/Volley:[306]BasicNetwork.performRequest:D的意外响应代码405/error:com.android.Volley.ClientError(在android中)抱歉更改时转到POST i此获取错误:E/Volley:[278]BasicNetwork.performRequest:D的意外响应代码419/error:com.android.volley.clientError这意味着服务器已找到并正在响应,但我认为问题与定义要发送的数据的标题内容类型有关。请在postman中验证您正在使用application/json。如果您不知道如何更改e邮递员的标题,请阅读此处的章节标题
JsonObjectRequest request=new JsonObjectRequest(Request.Method.GET, "http://192.168.1.4:8000/r",requestJsonObject , new Response.Listener<JSONObject>() {
$json = json_decode($request['json']);
echo $json->{'email'};
echo "\n";
echo $json->{'password'};