方法一:利用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...