Heim  >  Artikel  >  PHP-Framework  >  So verarbeiten Sie HTTP-Anfragen in yii2

So verarbeiten Sie HTTP-Anfragen in yii2

(*-*)浩
(*-*)浩Original
2019-11-05 09:42:493981Durchsuche

So verarbeiten Sie HTTP-Anfragen in yii2

VerbFilter

VerbFilter ist ein Filter für HTTP-Anfragemethoden. Seine Funktion besteht darin, zu definieren, worauf zugegriffen werden darf angegebene Aktionen. Wenn eine unzulässige HTTP-Anfrage eintrifft, wird ein HTTP 405-Fehler ausgegeben. Wenn keine zulässige Anforderungsmethode angegeben ist, sind alle Arten von Anforderungsmethoden standardmäßig zulässig. (Empfohlenes Lernen: yii-Tutorial)

Als nächstes probieren Sie die einfache Verwendung von VerbFilter aus.

Fügen Sie zunächst den Code in SiteController hinzu

public function actionInfo()
    {
        return \Yii::createObject([
            'class' => 'yii\web\Response',
            'format' => \yii\web\Response::FORMAT_JSON,
            'data' => [
                'message' => 'hello world',
                'code' => 100,
            ],
        ]);
    }

Der obige Code gibt eine mit FORMAT_JSON formatierte Zeichenfolge zurück

Beim Zugriff über die URL http://localhost/basic/web/index.php?r=site/info wird erfolgreich

{"message":"hello world","code":100}

zurückgegeben. Fügen Sie dann Code in behaviours()

public function behaviors()
    {
        return [
            ... ...
            'verbs' => [
                'class' => VerbFilter::className(),
                'actions' => [
                    'logout' => ['post'],                   
                    'info' => ['post'],
                ],
            ],
        ];
    }

hinzu Der obige Code verwendet den Filter VerbFilter in behaviours(), der angibt, dass beim Zugriff auf Aktionsinformationen nur die POST-Anforderungsmethode verwendet werden kann

Verwenden Sie zu diesem Zeitpunkt das RESTClient-Tool und wählen Sie die GET-Anforderungsmethode für den Zugriff aus . Mal wird ein 405-Fehler zurückgegeben

Ändern Sie den Code erneut

public function behaviors()
    {
        return [
            ... ...
            'verbs' => [
                'class' => VerbFilter::className(),
                'actions' => [
                    'logout' => ['post'],                   
                    'info' => ['post','get'],
                ],
            ],
        ];
    }

Erlauben Sie den POST- und GET-Anforderungsmethoden, auf die Aktionsinformationen zuzugreifen, verwenden Sie das RESTClient-Tool für den Zugriff und rufen Sie den Rückgabewert ab Sie wählen die GET-Anfragemethode für den Zugriff aus.

{"message":"hello world","code":100}

Verwenden Sie zu diesem Zeitpunkt das Tool RESTClient, um die Anfrage per Post zu senden und einen 405-Fehler zurückzugeben.

Ändern Sie zu diesem Zeitpunkt die web.php-Datei

'request' => [
            // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
            'cookieValidationKey' => '4mWc84oNsYJpc-nnnjMwyOOiCTgcThig',
            'enableCookieValidation' => false,
            'enableCsrfValidation' => false,
        ],

und fügen Sie diese beiden Codezeilen zu Polizei-Cookie-Schutz und CSRF-Präventionsstrategien hinzu

 'enableCookieValidation' => false,
 'enableCsrfValidation' => false,

senden Sie erneut eine Anfrage für Zugang per Post.

Hinweis: CSRF-Überprüfung

Da beim Zugriff auf die Webseite eine entsprechende versteckte Eingabe erfolgt:_csrf im Formular zur Überprüfung Kann die CSRF-Überprüfung nicht bestanden werden?

Das obige ist der detaillierte Inhalt vonSo verarbeiten Sie HTTP-Anfragen in yii2. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn