美文网首页
PHP文件中模拟POST向指定地址发送请求

PHP文件中模拟POST向指定地址发送请求

作者: 苏大发 | 来源:发表于2017-07-02 10:57 被阅读0次

    直接上例子

    public function curl_post($url,$array){  
       
            $curl = curl_init();  
            // 设置提交的url  
            curl_setopt($curl, CURLOPT_URL, $url);  
            //设置头文件的信息作为数据流输出  
            curl_setopt($curl, CURLOPT_HEADER, 0);  
            //设置获取的信息以文件流的形式返回,而不是直接输出。  
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);  
            //设置post方式提交  
            curl_setopt($curl, CURLOPT_POST, 1);  
            //设置post数据  
            $post_data = $array;  
            curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);  
            //执行命令  
            $data = curl_exec($curl);  
            //关闭URL请求  
            curl_close($curl);  
          //获得数据并返回  
            return $data;  
        }
    
    //or
    
    function postXmlCurl($xml, $url, $useCert = false, $second = 30){         
                $ch = curl_init();  
                //设置超时  
                curl_setopt($ch, CURLOPT_TIMEOUT, $second);  
                curl_setopt($ch,CURLOPT_URL, $url);  
                curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);  
                curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);  
                //设置header  
                curl_setopt($ch, CURLOPT_HEADER, FALSE);  
                //要求结果为字符串且输出到屏幕上  
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);  
                if($useCert == true){  
                    //设置证书  
                    //使用证书:cert 与 key 分别属于两个.pem文件  
                    curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM');  
                    //curl_setopt($ch,CURLOPT_SSLCERT, WxPayConfig::SSLCERT_PATH);  
                    curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM');  
                    //curl_setopt($ch,CURLOPT_SSLKEY, WxPayConfig::SSLKEY_PATH);  
                }  
                //post提交方式  
                curl_setopt($ch, CURLOPT_POST, TRUE);  
                curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);  
                //运行curl  
                $data = curl_exec($ch);  
                //返回结果  
                if($data){  
                    curl_close($ch);  
                    return $data;  
                } else {   
                    $error = curl_errno($ch);  
                    curl_close($ch);  
                    return false;  
                }  
            }
    

    在程序中调用的方法

    
            $data = array('req'=>$req);//定义一个要发送的信息
            $url = 'http://222.35.5.7/vapi/service/cancelOrder';//定义目标URL
            $result = $this->curl_post($url,$data);//PHP中调用
            var_dump($result);//打印结果
    

    实现get请求

    
    function curl_get($url){
        $curl = curl_init();
        //设置抓取的url
        curl_setopt($curl, CURLOPT_URL, $url);
        //设置头文件的信息作为数据流输出
        curl_setopt($curl, CURLOPT_HEADER, 0);
        //设置获取的信息以文件流的形式返回,而不是直接输出。
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        //执行命令
        $data = curl_exec($curl);
        //关闭URL请求
        curl_close($curl);
        //显示获得的数据
        return $data;
    }
    
    

    相关文章

      网友评论

          本文标题:PHP文件中模拟POST向指定地址发送请求

          本文链接:https://www.haomeiwen.com/subject/tzencxtx.html