php接口post提交方法 。

方法一,用 file_get_contents

function send_post($url, $post_data) {
    
        //$postdata = http_build_query($post_data);    //把数组转换成key=val&
        $options = array(
                'http' => array(
                        'method' => 'POST',
                        'header' => 'Content-type:application/x-www-form-urlencoded',
                        'content' => $post_data,
                        'timeout' => 2 * 60 // 超时时间(单位:s)
                )
        );
        $context = stream_context_create($options);
        $result = file_get_contents($url, false, $context);
    
        return $result;
    }

方法二、

 function send_post2($host,$port,$urlPage,$postData){
//         echo str_pad(" ", 256);
        
        $errno = '';
        $errstr = '';
    
        $length = strlen($postData);

        $fp = fsockopen($host,$port,$errno,$errstr,120) or exit($errstr."--->".$errno);
        //构 造post请求的头
        $header = "POST $urlPage HTTP/1.1
";
        $header .= "Host:".$host."
";
        $header .= "Referer:".$urlPage."
";
        $header .= "Content-Type:application/x-www-form-urlencoded
";
        $header .= "Content-Length:".$length."
";
        $header .= "Connection:Close

";
        //添加post的字符串
        $header .= $postData."
";
        
//         echo "1";
//         my_flush();
        //发送post的数据
        fputs($fp, $header);
//         echo "2";
//         my_flush();
        $inheader = 1;
        $result = ""; //最终结果
        
        while (!feof($fp)){
            
            $line = fgets($fp,1024); // 去除请求包的头只显示页面 的返回数据  (注意fgets  fread($fp,1)最少2个字节起。)
            
//             echo $line;
//             my_flush();
            if($inheader && ($line == "
" || $line == "
"))
                $inheader = 0;
        
            if($inheader==0){
                
                $result .= $line;
                    
                
            }    
        }
        fclose($fp);
//         echo "3";
//         my_flush();
        return $result;
    
    }
    
    //刷新缓冲区
    function my_flush(){
        ob_flush();
        flush();
    }

调用示例、

$host = "127.0.0.1";
$urlPage = "http://localhost/admin/confirmCode.php";
$port = "80";
$postData = "AAobjid=33$&username1=fff";
echo send_post2($host,$port,$urlPage,$postData) ;
// echo send_post($urlPage,$postData);
原文地址:https://www.cnblogs.com/longhs/p/4527260.html