黄色电影一区二区,韩国少妇自慰A片免费看,精品人妻少妇一级毛片免费蜜桃AV按摩师 ,超碰 香蕉

FuelPHP 請(qǐng)求和響應(yīng)

fuelphp 請(qǐng)求和響應(yīng)

 

http 請(qǐng)求和 http 響應(yīng)在任何 web 應(yīng)用程序中都扮演著重要的角色。我們需要獲取 http 請(qǐng)求的完整詳細(xì)信息才能正確處理它。處理完后,我們需要通過(guò)http響應(yīng)將處理后的數(shù)據(jù)發(fā)送給客戶端。

fuelphp 提供了優(yōu)秀的 requestresponse 類(lèi)來(lái)分別讀寫(xiě)http 請(qǐng)求和http 響應(yīng)。讓我們學(xué)習(xí)本章中的 requestresponse 類(lèi)。

 

請(qǐng)求

在典型的 web 應(yīng)用程序中,應(yīng)用程序需要解析當(dāng)前請(qǐng)求的詳細(xì)信息。 request 類(lèi)提供了簡(jiǎn)單的方法來(lái)解析應(yīng)用程序要處理的當(dāng)前請(qǐng)求。 request 還提供了一個(gè)選項(xiàng),通過(guò)充當(dāng) http 客戶端來(lái)創(chuàng)建新請(qǐng)求。

創(chuàng)建新請(qǐng)求使應(yīng)用程序能夠請(qǐng)求應(yīng)用程序的其他部分 or 完全是另一個(gè)應(yīng)用程序并顯示結(jié)果。讓我們?cè)诒菊轮袑W(xué)習(xí)如何解析傳入的請(qǐng)求,并在 hmvc 請(qǐng)求章節(jié)中學(xué)習(xí)如何創(chuàng)建新請(qǐng)求。

 

解析請(qǐng)求

request 類(lèi)提供了三種方法來(lái)獲取 http 請(qǐng)求的詳細(xì)信息。它們?nèi)缦拢?/p>

active-它是一個(gè)靜態(tài)方法,返回當(dāng)前活動(dòng)的 http 請(qǐng)求。

$currentrequest = request::active();

param-它返回指定參數(shù)的值。它包含兩個(gè)參數(shù)。第一個(gè)參數(shù)是參數(shù)名稱,第二個(gè)參數(shù)是要返回的值,如果該參數(shù)在當(dāng)前 http 請(qǐng)求中不可用。

$param = request::active()->param('employee_name', 'none');

params-除了將所有參數(shù)作為數(shù)組返回之外,它與 param 相同。

$params = request::active()->params();

 

示例

讓我們創(chuàng)建一個(gè)簡(jiǎn)單的表單并使用請(qǐng)求類(lèi)處理表單。

步驟 1-在員工控制器中創(chuàng)建一個(gè)新操作 action_request。

public function action_request() {
}

步驟 2-調(diào)用請(qǐng)求方法以獲取當(dāng)前請(qǐng)求的所有參數(shù)。

public function action_request() {
   $params = request::active()->params();
}

步驟 3-轉(zhuǎn)儲(chǔ)獲取的參數(shù)數(shù)組。

public function action_request() {
   $params = request::active()->params();
   echo dump($params);
}

step 4-更改路由以在路由配置文件中包含參數(shù), fuel/app/config/routes.php

'employee/request(/:name)?' => array('employee/request', 'name' => 'name'),

現(xiàn)在,請(qǐng)求新操作 http://localhost:8080/employee/request/jon,它將顯示以下響應(yīng)。

 

回復(fù)

response 類(lèi)提供了創(chuàng)建 http 響應(yīng)的選項(xiàng)。默認(rèn)情況下,我們?cè)诖蠖鄶?shù)情況下不需要直接使用響應(yīng)類(lèi)。相反,我們使用 view(我們將在下一章學(xué)習(xí))來(lái)創(chuàng)建 http 響應(yīng)。 view 對(duì)開(kāi)發(fā)人員隱藏 http 響應(yīng),并使用底層 response 類(lèi)將響應(yīng)發(fā)送給客戶端。在高級(jí)的情況下,我們直接使用response類(lèi),創(chuàng)建一個(gè)完整的http響應(yīng)。

 

創(chuàng)建響應(yīng)

響應(yīng)由標(biāo)題和正文組成。主要標(biāo)頭是 http 狀態(tài)代碼。 http 狀態(tài)碼是 http 協(xié)議中定義的用于描述響應(yīng)的標(biāo)準(zhǔn)代碼。例如狀態(tài)碼,200表示請(qǐng)求成功。

response 類(lèi)提供了三個(gè)參數(shù)來(lái)創(chuàng)建 http 響應(yīng),

  • $body-http 響應(yīng)的正文
  • $status_code-http 響應(yīng)的狀態(tài)代碼
  • $headers-作為數(shù)組的可選標(biāo)題
  • $body = "hi, fuelphp";
    $headers = array (
       'content-type' => 'text/html',
    );
    $response = new response($body, 200, $headers);

    讓我們?cè)趩T工控制器中創(chuàng)建一個(gè)新動(dòng)作, action_response,如下所示。

    public function action_response() {
       $body = "hi, fuelphp";
       $headers = array (
          'content-type' => 'text/html',
       );
       $response = new response($body, 200, $headers);
       return $response;
    }

     

    結(jié)果

     

    方法

    response 類(lèi)提供了很多操作 http 響應(yīng)的方法。它們?nèi)缦拢?/p>

    forge-它與上面看到的響應(yīng)類(lèi)構(gòu)造函數(shù)相同。

    return response::forge("hi, fuelphp", 404);

    redirect-它提供了重定向到 url 而不是發(fā)送響應(yīng)的選項(xiàng)。它包含以下參數(shù),

    a.url-目標(biāo)網(wǎng)址 b.方法-重定向方法。 location(默認(rèn))和 refresh c.redirect_code-http 狀態(tài)代碼。默認(rèn)值為 302、

    // use a url
    response::redirect('http://some-domain/index', 'refresh');
    // or use a relative uri
    response::redirect('employee/list');

    redirect_back-除了重定向到上一頁(yè)之外,它類(lèi)似于重定向方法。如果沒(méi)有可用的后臺(tái)頁(yè)面,我們可以指定重定向頁(yè)面。

    // if there is no back page, go to the employee list page
    response::redirect_back('/employee/list', 'refresh');

    set_status-它提供了一個(gè)設(shè)置 http 狀態(tài)代碼的選項(xiàng)。

    $response = new response();
    $response->set_status(404);

    set_header-它提供了一個(gè)設(shè)置 http 標(biāo)頭的選項(xiàng)。

    $response = new response();
    $response->set_header('content-type', 'application/pdf');
    // replace previous value using third arguments
    $response->set_header('content-type', 'application/pdf', 'text/plain');

    set_headers-與 set_header 相同,只是它提供了使用數(shù)組設(shè)置多個(gè)標(biāo)題的選項(xiàng)。

    $response = new response();
    $response->set_headers(array
       'content-type' => 'application/pdf',
       'pragma' => 'no-cache',
    ));

    get_header-它可以獲取先前設(shè)置的標(biāo)題詳細(xì)信息。

    $response = new response();
    $response->set_header('pragma', 'no-cache');
    // returns 'no-cache'
    $header = $response->get_header('pragma');
    // returns array('pragma' => 'no-cache')
    $header = $response->get_header();

    body-它提供了一個(gè)選項(xiàng)來(lái)設(shè)置 http 響應(yīng)的正文。

    $response = new response();
    $response->body('hi, fuelphp');
    // returns 'hi, fuelphp'
    $body = $response->body();

    send_headers-將標(biāo)頭發(fā)送到請(qǐng)求的客戶端。 fuelphp 使用此方法將響應(yīng)發(fā)送到客戶端。通常情況下,我們不需要使用這種方法。

    $response->send_headers();

    send-與 send_headers 相同,但 http 響應(yīng)中可能會(huì)限制標(biāo)頭。

    // send the headers as well
    $response->send(true);
    // only send the body
    $response->send(false);
    $response->send();

    下一節(jié):fuelphp 視圖

    fuelphp 教程

    相關(guān)文章