怎么用PHP发送POST请求

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用PHP发送POST请求相关的知识,希望对你有一定的参考价值。

  php发送POST请求的三种方式

class Request
 
    public static function post($url, $post_data = '', $timeout = 5)//curl
 
        $ch = curl_init();
 
        curl_setopt ($ch, CURLOPT_URL, $url);
 
        curl_setopt ($ch, CURLOPT_POST, 1);
 
        if($post_data != '')
 
            curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
 
        
 
        curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
 
        curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
 
        curl_setopt($ch, CURLOPT_HEADER, false);
 
        $file_contents = curl_exec($ch);
 
        curl_close($ch);
 
        return $file_contents;
 
    
 
 
    public static function post2($url, $data)//file_get_content
 
         
 
        $postdata = http_build_query(
 
            $data
 
        );
 
         
 
        $opts = array('http' =>
 
                      array(
 
                          'method'  => 'POST',
 
                          'header'  => 'Content-type: application/x-www-form-urlencoded',
 
                          'content' => $postdata
 
                      )
 
        );
 
         
 
        $context = stream_context_create($opts);
 
 
        $result = file_get_contents($url, false, $context);
 
        return $result;
 
 
    
 
 
    public static function post3($host,$path,$query,$others='')//fsocket
 
 
        $post="POST $path HTTP/1.1\\r\\nHost: $host\\r\\n";
 
        $post.="Content-type: application/x-www-form-";
 
        $post.="urlencoded\\r\\n$others";
 
        $post.="User-Agent: Mozilla 4.0\\r\\nContent-length: ";
 
        $post.=strlen($query)."\\r\\nConnection: close\\r\\n\\r\\n$query";
 
        $h=fsockopen($host,80);
 
        fwrite($h,$post);
 
        for($a=0,$r='';!$a;)
 
                $b=fread($h,8192);
 
                $r.=$b;
 
                $a=(($b=='')?1:0);
 
            
 
        fclose($h);
 
        return $r;
 
    

  http://www.oschina.net/code/snippet_729516_33065

参考技术A curl可以实现

Godot笔记:用HTTP的POST请求发送JSON数据

参考技术A 基于godot 3.1

由于游戏中用HTTP的POST请求携带JSON数据的场景比较多,所以为了方便使用,我根据文档说明封装了一个专用节点"PostRequest"

直接添加节点,开箱即用

注意:HTTPRequest以及PostRequest都有一个共同的特点,即必须在一次请求完成后(即发出回调信号以后),才能开始另一次请求,所以文档上建议,如果要发起多种请求的话,最好是使用多个HTTPRequest节点分别来收发不同的HTTP信息

以上是关于怎么用PHP发送POST请求的主要内容,如果未能解决你的问题,请参考以下文章

php post请求发送xml 数据 怎么添加请求头

php怎么发送get/post请求

PHP中怎样发送post请求并获取网页?

如何用php向服务器发送post请求

怎么用javascript发送post请求?

php函数里面怎么获取post过来的值