簡體   English   中英

使用 Android Koush Ion 調用 Laravel 路由時出現錯誤

[英]Getting error when use Android Koush Ion to call Laravel route

我正在嘗試學習 android 開發,我正在使用 Android Studio。 我需要訪問一個外部數據庫(插入,獲取itens ... CRUD),我找到了一個教程,告訴我使用koush ion ,從Android 使用Ion,我調用了一個web 頁面,它是一個ZA5CZBE6456291EA2029Route . 當我不帶參數調用時,效果很好,我可以在 Android 中獲取返回值。 但是當我使用“setBodyParameter”時,出現以下錯誤:

java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.gson.JsonElement com.google.gson.JsonObject.get(java.lang.String)' on a null object reference

我的 laravel 路由只調用了這個 function:

function cadastrar(){
    date_default_timezone_set('America/Sao_Paulo');
    $resposta = array();
    $myUser = null;

    $nome = isset($_POST['nome']) ? $_POST['nome'] : 'Teste 2';
    $email = isset($_POST['email']) ? $_POST['email'] : 'teste@gmail.com';

    $myUser = new Usuario;
    $myUser->nome = $nome;
    $myUser->email = $email;
    $myUser->save();

    $resposta = array('id' => strval($myUser->id_usuario), 'nome' => $myUser->nome, 'email' => $myUser->email);

    return json_encode($resposta);
}

我的 Laravel 路線是 Route::get (但是當我將其更改為 Route::post 時,我也收到錯誤消息)。

而我調用此頁面的 Android 代碼是:

final TextView txtErro = (TextView) findViewById(R.id.textView4);
txtErro.setText("");
final String strNome = nome.getText().toString();
final String strEmail = email.getText().toString();
String url = "**My URL to the route in laravel**";
Ion.with(MainActivity.this)
     .load(url)
     .setBodyParameter("nome", strNome)
     .setBodyParameter("email", strEmail)
     .asJsonObject()
     .setCallback(new FutureCallback<JsonObject>() {
         @Override
         public void onCompleted(Exception e, JsonObject result) {
             try {
                 txtErro.setText(result.get("id").getAsString());
             } catch (Exception erro) {
                 txtErro.setText(erro.toString());
             }
         }
     });

當我注釋“.setBodyParameter”的兩行時,我從 laravel 得到返回值(如果 laravel 路由是 Route::get)。 當我將 "load" 行更改為 "load("POST", url)" 時,出現錯誤。

I tried something related to CORS that I found here in StackOverflow and in my Laravel Kernel.php I commented the line that calls "VerifyCsrfToken", but still didn't working.

(最后,如果我的英語有問題,我很抱歉)

您是否嘗試記錄異常 e 和 JsonObject 結果? 或為請求設置日志記錄並在 logcat 中觀看

.setLogging("MyLogs", Log.DEBUG)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM