PHP模擬http請求

2021-07-13 14:03:13 字數 2866 閱讀 6959

方法一:利用php的socket程式設計來直接給介面傳送資料來模擬post的操作。

建立兩個檔案post.php,getpost.php

post.php內容如下:

<?php

$flag = 0;

$params = '';

$errno = '';

$errstr = '';

//要post的資料

$argv = array(

'var1'=>'abc',

'var2'=>'how are you , my friend??');

//構造要post的字串

foreach ($argv as $key=>$value)

$params.= $key."="; $params.= urlencode($value);

$flag = 1;

}$length = strlen($params);

//建立socket連線

$fp = fsockopen("localhost",80,$errno,$errstr,10) or exit($errstr."--->".$errno);

//構造post請求的頭

//新增post的字串

$header .= $params."\r\n";

//傳送post的資料

fputs($fp,$header);

$inheader = 1;

while (!feof($fp))

if ($inheader == 0)

}fclose($fp);

?>

getpost.php的內容如下

<?php

echo "this is the data posted";

echo "

";

print_r($_request);

echo "

";

?>

結果輸出:

this is the data posted

array

([var1] => abc

[var2] => how are you , my friend??

)以上**在本機81埠下已經通過測試。

方法二:

使用php的curl擴充套件或httpclient.class.php類,這兩個非常類似,下面簡單的列出curl的實現**。

兩個檔案post2.php和getpost2.php

post2.php的內容如下:

curl_setopt($ch, curlopt_returntransfer, 1);//不直接輸出,返回到變數

$curl_result = curl_exec($ch);

$result = explode(',', $curl_result);

curl_close($ch);

print_r($result);

?>

getpost2.php的內容如下:

<?php

echo "returndata

";echo "

";

print_r($_request);

echo "

";

?>

結果輸出:

方法三:這個要借助第三方類庫httpclient

php模擬http請求

http請求有get,post。php傳送http請求有三種方式 我所知道的有三種,有其他的告訴我 file get contents 詳情見 curl傳送請求。fsocket傳送。下面說使用curl傳送。首先環境需要配置好curl元件。1 2 3 4 5 6 7 8 9 10 在windows中讓...

php 模擬http請求

原文 guzzlehttp模擬表單提交 並用nodejs接受資料 return response js接收資料 const bodyparser require body parser server.listen 80 use bodyparser.urlencoded use bodyparser...

PHP(10)PHP模擬HTTP請求

php可以通過模擬http協議發起http請求 curl是乙個非常強大的開源庫,支援很多協議,包括http ftp telnet等,我們使用它來傳送http請求。它給我們帶來的好處是可以通過靈活的選項設定不同的http協議引數,並且支援https。curl可以根據url字首是 http 還是 htt...