1. 程式人生 > >php之curl帶頭部header的post請求

php之curl帶頭部header的post請求

    public  function op(){
          // $url = 'http://www.baidu.com/test/na/oh';
   
                $header=array('Accept-Language:zh-CN','x-appkey:114816004000028','x-apsignature:933931F9124593865313864503D477035C0F6A0C551804320036A2A1C5DF38297C9A4D30BB1714EC53214BD92112FB31B4A6FAB466EEF245710CC83D840D410A7592D262B09D0A5D0FE3A2295A81F32D4C75EBD65FA846004A42248B096EDE2FEE84EDEBEBEC321C237D99483AB51235FCB900AD501C07A9CAD2F415C36DED82','x-apversion:1.0','Content-Type:application/x-www-form-urlencoded','charset:utf-8','Accept:application/json','X-APFormat:json');
     
                 $content='params=[{"v":"3.0","pwd":"96e79218965eb72c92a549dd5a330112","action":"msc/user/login","merchId":"114816004000028","iposSn":"0000000000000000","operator":"01"}]';
            //   $content = array(
              //      'name' => 'fdipzone'
             //   );
              $response =$this->tocurl($url, $header,$content);
             var_dump($response);
           
         }

        /**
         * 傳送資料
         * @param String $url     請求的地址
         * @param Array  $header  自定義的header資料
         * @param Array  $content POST的資料
         * @return String
         */
        public  function tocurl($url, $header,$content){
            $ch = curl_init();
            if(substr($url,0,5)=='https'){
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳過證書檢查
                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true);  // 從證書中檢查SSL加密演算法是否存在
            }
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $content);
            $response = curl_exec($ch);
            if($error=curl_error($ch)){
                die($error);
            }
            curl_close($ch);
          //var_dump($response);
            return $response;
        }
  
  
  
  
  
  
  
          public  function oh(){
                    $post_data = $_POST;
                        var_dump();
                    $header = $this->em_getallheaders();
                     var_dump($header);exit;
                    $ret = array();
                    $ret['post'] = $post_data;
                    $ret['header'] = $header;
                   
                    header('content-type:application/json;charset=utf8');
                    echo  json_encode($ret, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);
            }
          /**
           * 獲取自定義的header資料
           */
          public   function get_all_headers(){
                // 忽略獲取的header資料
                $ignore = array('host','accept','content-length','content-type');
                $headers = array();
          
                foreach($_SERVER as $key=>$value){
                    if(substr($key, 0, 5)==='HTTP_'){
                        $key = substr($key, 5);
                        $key = str_replace('_', ' ', $key);
                        $key = str_replace(' ', '-', $key);
                        $key = strtolower($key);

                       // if(!in_array($key, $ignore)){
                            $headers[$key] = $value;
                       // }
                    }
                }
                return $headers;
            }
       public function em_getallheaders()
    {
        foreach ($_SERVER as $name => $value)
        {
            if (substr($name, 0, 5) == 'HTTP_')
            {
                $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
            }
        }
        return $headers;
    }

相關推薦

phpcurl頭部header的post請求

public function op(){ // $url = 'http://www.baidu.com/test/na/oh'; $header=array('Accept-Language:zh-CN

PHPCURL

一、什麼是CURL CURL是一個功能強大的庫,可以讓我們與各種的伺服器使用各種型別的協議進行連線和通訊。支援http、https、ftp、gopher、telnet、dict、file和ldap協議。同時也支援HTTPS認證、HTTP POST、HTTP PUT、 FTP

PHPcurl驗證碼模擬登陸學校的教務系統(驗證碼已被自動識別,不需要輸入)

初次使用curl模仿登陸成功,有什麼不好的地方多多指出。 我要模擬登陸的地址是:http://jwc.wyu.edu.cn/student/   原本學校的教務系統是這樣的: 現在我做的模擬登陸介面是這樣的: 有沒發現少了什麼,沒錯就是驗證碼沒了,我們不用輸驗證碼也能

PHPCURL實現含有驗證碼的模擬登入

博主最近在為學校社團寫一個模擬登入教務系統來進行成績查詢的功能,語言當然是使用PHP啦,原理是通過php資料傳輸神器—curl擴充套件,向學校教務系統傳送請求,通過模擬登入,獲取指定url下的內容。 在開始實驗之前有必要對curl擴充套件進行

PHPCURL分別以GET、POST方式請求HTTPS協議接口api

json格式 gen useragent pin php curl 檢查 協議 處理 訪問 1、curl以GET方式請求https協議接口 //註意:這裏的$url已經包含參數了,不帶參數你自己處理哦GET很簡單 function curl_get_https($url

php使用cUrl方法 get、post請求

http log lds ray lan init foreach get方法 spa php使用curl方法,請確保已經開啟curl擴展。傳送門:http://www.cnblogs.com/wgq123/p/7450667.html /**Curl請求get方法 *@

phpcurl請求)測試接口案例

結果 code api tom obi ech 方法 mobile exe 請求測試接口,如下: $data = [‘mobilephone‘=>‘123‘,‘password‘=>‘124‘]; $result = curlrequest($apiUrl,$

php <5.5 curl post and file 請求

cep 文件上傳 output errno accep dir 適配 add loaded /** * 跨域post請求(適配文件上傳) * @param $url 上傳地址 * @param $post_data 請求數據 */

PHP編程中使用CURL發送HTTP請求的基本流程

size 常量 col 科技 比較 編碼 如何使用 lse 正文 在PHP編程中,有時候需要編程技術人員使用CURL的PHP擴展完成一個HTTP請求的發送,對於這個操作來說,很多初學者都會遇到很多苦難,那麽下面就來為大家講解一下。一般有以下幾個步驟:   1. 初始化連接句

php封裝curl,模擬POST和GET請求HTTPS請求

<?php /** * @title 封裝代理請求 * @author victor **/ class ApiRequest { /** * curl提交資料 * @param String $url 請求的地址 * @param Array $header 自定

PHP使用curl請求https站點的常見錯誤及解決方案

使用curl請求http站點和https站點最大的不同就是https站點有證書驗證這一環節,如果證書驗證不通過則無法發起請求,不管是請求什麼型別的站點遇到問題時先把錯誤碼打印出來看一下,列印錯誤碼的程式碼片段如下: $error = curl_errno($ch); //其

PHP curl類分裝post請求 get請求

cURL 是一個利用 URL 語法規定來傳輸檔案和資料的工具,支援很多協議,如 HTTP、FTP、TELNET 等。最爽的是,PHP 也支援 cURL 庫。使用 PHP 的 cURL 庫可以簡單和有效地去抓網頁。你只需要執行一個指令碼,然後分析一下你所抓取的網頁,然後就可以以

php通過curl請求介面的各種設定

第一:請求頭部方式 為json ,獲取狀態碼 function send_http_json($url,$data) { $ch = curl_init($url); $this_header[] = "content-type:application/js

踩坑系列 phpcurl

前言 今天,準確的說是前幾天,對接其他部門的的介面,於是乎調了前人封裝的curl的函式。奇怪的是:用post的方式curl進行請求竟然一直報錯,而用命令列curl -d “parms” url是可以成功的。難道“祖傳”的curl函式用錯了?? 正文 原

PHPcurl的CURLOPT_POSTFIELDS請求時,Content-Type多出boundary=------------------------

當我們採用 CURL 在不注意細節的前提下向伺服器傳送一些資料,得到請求頭的CONTENT_TYPE:[CONTENT_TYPE] => multipart/form-data; boundary=—————————-f924413ea122後面多出一個boundary

PHP使用curl小技巧查詢某個連結或者文章是否被百度收錄

    這個東西嘞,網上有好多的工具啥的。比如買鏈幫手啥的都可以用來查詢自己的連結或者文章是否被百度或者360等等收錄。然而我研究這個東西呢,是因為公司內部需要大量使用這個功能,用工具的話,它收費先不說

PHP 模擬CURL分別GET POST進行HTTP請求

在呼叫介面的過程中 我們需要模擬瀏覽器請求,這個時候作為PHP開發者,我們可以利用CURL進行模擬HTTP請求 1、curl以POST方式請求https協議介面 /** * 傳入json資料

php實現非同步方法之一(php對於curl或瀏覽器或ajax請求立即返回結果,返回結果後的php程式碼還能繼續執行)

如題:  服務端php程式碼如下:(瀏覽器和curl的請求都可以使用) //要輸出到瀏覽器的內容, nginx伺服器快取內容需要大於65536才能輸出 $str = str_repeat(' ', 65536); //告訴瀏覽器資料長度,瀏覽器接收到此長度資料後就不再接收資

PHP通過curl向其它伺服器發請求並返回資料

在很多時候,我們都需要請求第三方的伺服器來獲取一些資料,比如token,比如百度的主動推送,那麼我們的php如何實現向第三方伺服器發請求呢?我們可以通過curl來實現 首先定義請求的url,然後建立httpHeader的頭,定義通過post方式傳送請求的引數:   初始化curl:

PHP通過curl向其它服務器發請求並返回數據

false 其它 blank post data 方式 初始化 color 完成 在很多時候,我們都需要請求第三方的服務器來獲取一些數據,比如token,比如百度的主動推送,那麽我們的php如何實現向第三方服務器發請求呢?我們可以通過curl來實現 首先定義請求的url,然