zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    leetcode刷题四<寻找两个有序数组的中位数>
    leetcode刷题第三天<无重复字符的最长子串>
    leetcode刷题第二天<两数相加>
    leetcode刷题第一日<两数和问题>
    sqlalchemy.exc.ProgrammingError: (pymysql.err.ProgrammingError)
    flask微电影系统开发中上下文处理器
    gdb解决字符串打印果断措施
    邻接表
    Jarvis OJ 一些简单的re刷题记录和脚本
    windows控件理论学习
  • 原文地址:https://www.cnblogs.com/longhs/p/4527260.html
Copyright © 2011-2022 走看看