Java 使用postman和android向Laravel发送json
我试图使用postman将json发送到Lavavel,但我遇到了这个错误 这是我的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代码是:
{
"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'};