随笔 - 134  文章 - 3  评论 - 15  阅读 - 10万

php模拟POST请求提交数据

php模拟POST请求提交数据

1.基于fsockopen

复制代码
function phppost00($jsonString){

$URL='https://www.jy.com/phppostok.php';
$post_data['clientname'] = $jsonString;
$referrer="";
$URL_Info=parse_url($URL);

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

$values[]="$key=".$value;
 
$data_string=implode("&",$values);

// Find out which port is needed - if not given use standard (=80)
if(!isset($URL_Info["port"])) $URL_Info["port"]=80;
// building POST-request:
$request='';
$request.="POST ".$URL_Info["path"]." HTTP/1.1\n";
$request.="Host: ".$URL_Info["host"]."\n";
//$request.="Referer: $referrer\n";
$request.="Content-type: application/x-www-form-urlencoded\n";
$request.="Content-length: ".strlen($data_string)."\n";
$request.="Connection: close\n";
$request.="\n";
$request.=$data_string."\n";
$fp = fsockopen($URL_Info["host"],$URL_Info["port"]);
fputs($fp, $request);
$result='';
while(!feof($fp)) {
$result .= fgets($fp, 128);
}
fclose($fp);
}
复制代码

 

2.基于curl_init

复制代码
function phppost($jsonString){
    $url='http://www.jy.com/phppostok.php';
    $fields=$jsonString;
    $ch=curl_init();
    curl_setopt($ch,CURLOPT_POST, true);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_POST,count($fields));
    curl_setopt($ch,CURLOPT_POSTFIELDS,$fields);
    $response=curl_exec($ch);
    curl_close($ch);
    $result = json_decode($response,true);
    
    return $result;
}
复制代码

 

 

posted on   程序员李铁牛  阅读(327)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类

点击右上角即可分享
微信分享提示