php以post方式向接口發送數據


  工作需要,我負責收集服務器數據,然后定時向中心服務器發送。我看到了接口信息,需要設置heads頭信息,需要發送數據,且是post方式。

 這里就用到了curl

 1    //發送post請求
 2     function request_post($url = '', $post_data = array()) {
 3         if (empty($url) || empty($post_data)) {
 4             return false;
 5         }  
 6         $o = "";
 7         foreach ( $post_data as $k => $v ) 
 8         { 
 9             $o.= "$k=" . urlencode( $v ). "&" ;
10         }
11         $post_data = substr($o,0,-1);
12         $postUrl = $url;
13         $curlPost = $post_data;
14         $headers = array(
15             'User-Agent:lalalla',
16             'TICKET:lllllllllllljjaajaj'
17         );
18         $ch = curl_init();//初始化curl
19         curl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定網頁
20         curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
21         curl_setopt($ch, CURLOPT_HEADER, 0);//設置header
22         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求結果為字符串且輸出到屏幕上
23         curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
24         curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
25         $data = curl_exec($ch);//運行curl
26         curl_close($ch);  
27         return $data;
28     }

其中我遇到了問題,就是我向對方發送,對方沒有接到user-agent和ticket。這就肯定是這句的問題了

$headers = array(
            'User-Agent:ereree',
            'TICKET:sdfsdsf'
        );

或者下面這句的順序問題(當時我是這樣猜的)

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

后來發現我當初是這樣寫的

    $headers = array(
            'User-Agent' => 'ererere3',
            'TICKET'    => 'tttttttttttttttt'
        );

經常遇到curl,得學習一下里面的具體內容了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM