Yii HTTP请求

Yii HTTP请求

请求由 yii\web\Request 对象表示,它提供有关HTTP标头、请求参数、Cookie等的信息。

get()post() 方法返回请求组件的请求参数。

示例

$req = Yii::$app->request;
   /*
   * $get = $_GET;
   */
   $get = $req->get();

   /*
   * if(isset($_GET['id'])) {
   *     $id = $_GET['id'];
   * } else {
   *     $id = null;
   * }
   */
   $id = $req->get('id');

   /*
   * if(isset($_GET['id'])) {
   *     $id = $_GET['id'];
   * } else {
   *     $id = 1;
   * }
   */
   $id = $req->get('id', 1);

   /*
   * $post = $_POST;
    */
   $post = $req->post();

   /*
   * if(isset($_POST['name'])) {       
   *     $name = $_POST['name'];          
   * } else {
   *     $name = null;
   * }
   */
   $name = $req->post('name');

   /*
   * if(isset($_POST['name'])) {
   *     $name = $_POST['name'];
   * } else {
   *     $name = '';
   * }
   */
   $name = $req->post('name', '');

步骤1 - 在基本应用模板的SiteController中添加一个 actionTestGet 函数。

public function actionTestGet() {
   var_dump(Yii::$app->request->get());
}

步骤2 - 现在转到 **http://localhost:8080/index.php?r=site/testget &id=1&name=tutorialspoint&message=welcome ** ,您将看到以下内容。

Yii HTTP请求

要检索其他请求方法(PATCH、DELETE等)的参数,请使用 yii\web\Request::getBodyParam() 方法。

要获取当前请求的HTTP方法,请使用 Yii::$app->request->method 属性。

步骤3 - 修改 actionTestGet 函数如下代码所示。

public function actionTestGet() {
   req = Yii::app->request;
   if (req->isAjax) {
      echo "the request is AJAX";
   }
   if (req->isGet) {
      echo "the request is GET";
   }
   if (req->isPost) {
      echo "the request is POST";
   }
   if (req->isPut) {
      echo "the request is PUT";
   }
}

步骤4 - 前往 http://localhost:8080/index.php?r=site/test-get 。您将看到以下内容。

Yii HTTP请求

请求组件提供了许多属性来检查请求的URL。

步骤5 - 修改 actionTestGet 函数如下。

public function actionTestGet() {
   //the URL without the host
   var_dump(Yii::app->request->url);

   //the whole URL including the host path
   var_dump(Yii::app->request->absoluteUrl);

   //the host of the URL
   var_dump(Yii::app->request->hostInfo);

   //the part after the entry script and before the question mark
   var_dump(Yii::app->request->pathInfo);

   //the part after the question mark
   var_dump(Yii::app->request->queryString);

   //the part after the host and before the entry script
   var_dump(Yii::app->request->baseUrl);

   //the URL without path info and query string
   var_dump(Yii::app->request->scriptUrl);

   //the host name in the URL
   var_dump(Yii::app->request->serverName);

   //the port used by the web server
   var_dump(Yii::$app->request->serverPort);
}

步骤6 − 在Web浏览器的地址栏中,输入 **http://localhost:8080/index.php?r=site/testget &id=1&name=tutorialspoint&message=welcome ** ,您将看到以下内容。

Yii HTTP请求

步骤7 - 要获取HTTP头信息,您可以使用 yii\web\Request::$headers 属性。以以下方式修改 actionTestGet 函数。

public function actionTestGet() { 
   var_dump(Yii::$app->request->headers); 
}

步骤8 − 如果你访问以下URL **http://localhost:8080/index.php?r=site/testget &id=1&name=tutorialspoint&message=welcome ** ,你将看到以下代码显示的输出结果。

Yii HTTP请求

要获取客户机的主机名和IP地址,请使用 userHostuserIP 属性。

步骤9 - 以这种方式修改 actionTestGet 函数。

public function actionTestGet() {
   var_dump(Yii::app->request->userHost);
   var_dump(Yii::app->request->userIP);
}

步骤10 - 转到以下地址 http://localhost:8080/index.php?r=site/test-get ,您会看到以下屏幕。

Yii HTTP请求

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程