2016-04-02 2 views
1

Я построил небольшое приложение laravel, которое имеет только форму и сохраняет данные в базе данных (phpmyadmin). Теперь я попытался отобразить эти данные в приложении для Android, я попытался получить его через ip.Подключить приложение Laravel к Android

Основная деятельность выглядит следующим образом:

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

    } 

    public void onConnect(View view) { 
     new Thread(){ 
      public void run(){ 
       HttpClient myClient = new DefaultHttpClient(); 
       HttpPost post = new HttpPost("http://192.168.145.33:8000/gaIndex"); 
       try { 
        List<NameValuePair> myArgs = new ArrayList<NameValuePair>(); 
        myArgs.add(new BasicNameValuePair("email", "[email protected]")); 
        myArgs.add(new BasicNameValuePair("password", "test")); 
        post.setEntity(new UrlEncodedFormEntity(myArgs)); 
        HttpResponse myResponse = myClient.execute(post); 
        BufferedReader br = new BufferedReader(new InputStreamReader(myResponse.getEntity().getContent())); 
        String line = ""; 
        while ((line = br.readLine()) != null) 
        { 
         Log.d("mytag", line); 

        } 
       } 
       catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 
     }.start(); 

    } 
} 

Если я запустить приложение и нажать на кнопку, чтобы подключить консоль дать мне кучу HTML ...

Я также получил это в консоли вывода :

TokenMismatchException в VerifyCsrfToken.php линии 53:

Кто-нибудь знает, что я делаю неправильно.

+0

Вы используете L 5.1 или 5.2? –

+0

Вы должны использовать шаблон маршрута RESTful здесь, а не напрямую пытаться получить доступ к представлениям через приложение Android. – Ohgodwhy

+0

Я использую L 5.1 –

ответ

2

Laravel имеет промежуточное программное verifyCsrf, который применяется для всех входящих запросов, чтобы защитить приложение от Cross Site Request Forgery

Вы можете сделать маршруты обойти это, добавив их в $except массив в классе VerifyCsrfToken:

В приложении /Http/Middleware/VerifyCsrfToken.php

<?php 

namespace App\Http\Middleware; 

use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier; 

class VerifyCsrfToken extends BaseVerifier 
{ 
    /** 
    * The URIs that should be excluded from CSRF verification. 
    * 
    * @var array 
    */ 
    protected $except = [ 
     'gaIndex' 
    ]; 
} 
Смежные вопросы