PHP 模擬請求和操作響應

2022-08-18 21:00:16 字數 3373 閱讀 1030

<?php

// 建立連線

$link = fsockopen('localhost', '80');

define('crlf', "\r\n");

// 請求行

$request_data = 'get /'.crlf;

// 請求頭

$request_data .= 'host: localhost'.crlf;

$request_data .= 'user-agent: mozilla/5.0 (windows nt 6.1; win64; x64; rv:51.0) gecko/20100101 firefox/51.0'.crlf;

$request_data .= 'accept-language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3'.crlf;

$request_data .= 'accept-encoding: gzip, deflate, br'.crlf;

$request_data .= 'cookie: 123'.crlf;

$request_data .= 'connection: keep-alive'.crlf;

$request_data .= 'upgrade-insecure-requests: 1'.crlf;

// 空行表示請求頭結束

$request_data .= crlf;

fwrite($link, $request_data);

//feof:(end of file)用於檢測是否到到資料流末尾

while (!feof($link))

fclose($link);

開啟 php_curl.dll 拓展

<?php

// 建立連線

$curl = curl_init();

//設定

$url = 'localhost';

curl_setopt($curl, curlopt_url, $url);

//傳送

var_dump(curl_exec($curl));

//關閉

curl_close($curl);

<?php

// 建立連線

$curl = curl_init();

//設定

$url = 'localhost';

curl_setopt($curl, curlopt_url, $url);

# 設定開啟post請求

curl_setopt($curl, curlopt_post, $url);

$post_data = array(

'user_name' => 'admin',

'user_pwd' => '123456'

);curl_setopt($curl, curlopt_postfields, $post_data);

//傳送

var_dump(curl_exec($curl));

//關閉

curl_close($curl);

curlopt_returntransfer:是將響應直接輸出,還是以返回值的形式處理

以返回值的形式處理響應資料:curl_setopt($curl, curlopt_returntransfer, true);

post 資料使用檔案位址,前使用 @標誌為檔案而不是字串

curlopt_cookiefile:是否傳送 cookie

curlopt_cookiejar:指定儲存伺服器所設定的 cookie 變數儲存位置

curl_setopt($curl, curlopt_cookiefile, true);

curl_setopt($curl, curlopt_header, 'c:/cookie.txt');

curlopt_header:是否獲取響應頭資料

獲取響應頭資料:curl_setopt($curl, curlopt_header, true);

header() 函式

header('content-type:image/jpeg');header('content-type:image/png');

編碼:header("content-type:text/html; charset=utf-8");

任何的輸出,都是響應主體。(echo,print,var_dump,php 標籤之外的所有 html **)

header('expires:' . gmdate('d, d m y h:i:s', time()+5) . 'gmt');

expires:有效期(gmt:格林威治時間)

gmdate() 將時間戳格式化為格林威治平時

<?php

header('expires: ' . gmdate('d, d m y h:i:s', time()+5) . ' gmt');

echo time(), "self";

//basename獲取乙個位址中的名字部分(最後乙個斜槓之後)

header('content-disposition: attachment;filename=' . basename($file));

$finfo = new finfo(fileinfo_mime_type);

$mime = $finfo->file($file);

header('content-type: ' . $mime);

header('content-length: ' . filesize($file));

//b 二進位制模式,用於相容處理文字與二進位制檔案

$mode = 'rb';

$handle = fopen($file, $mode);

while(!feof($handle))

fclose($handle);

header() 函式前不能存在任何的輸出內容

header() 函式後邊的**也會照常執行

public function goto($url)

public function info($url, $info, $wait = 3)

public function success($url, $wait = 3)

public function error($url, $wait = 3)

請求和響應

1 response物件的字元輸入流在編碼時候,採用的是iso 8859 1的編碼表 在httpservletresponse介面中,有setcharacterencoding utf 8 方法來設定字元編碼 2 瀏覽器的解碼方式是gb2312,而我們使用的編碼是 utf 8 因此亂碼。sethea...

請求和響應

如果你正在做基於rest的web服務,你最好忽略request.post和request.get rest framework的request類擴充套件了標準的httprequest,新增對rest framework的靈活請求解析和請求身份驗證的支援。rest framework的請求物件提供靈活...

請求和響應

post方式請求 request.setcharacterencoding utf 8 response.setcontenttype text html charset utf 8 get方式請求 get方式請求的正文是在位址列中,在tomcat8.5版本以後,tomacat伺服器已經幫我們解決了...