美文网首页
curl模拟post或get进行url请求

curl模拟post或get进行url请求

作者: 王玉伟的伟 | 来源:发表于2019-11-26 15:26 被阅读0次

简单的post方法

/**
    * 模拟post进行url请求
    * @param string $url
    * @param string $param
    */
   private function request_post($url = '', $param = '') {
       if (empty($url) || empty($param)) {
           return;
       }

       $postUrl = $url;
       $curlPost = $param;

       $ch = curl_init();//初始化curl
       curl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定网页
       curl_setopt($ch, CURLOPT_HEADER, 0);//设置header
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上

       curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
       curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);

       $data = curl_exec($ch);//运行curl
       curl_close($ch);

       return $data;
   }

//调用
$post_data = "TIMEBEGIN_SHOW=".$day_time."&TIMEEND_SHOW=".$day_time."&TIMEBEGIN=".$day_time."&TIMEEND=".$day_time."&SOURCE_TYPE=2&DEAL_TIME=02&DEAL_CLASSIFY=01&DEAL_STAGE=0100&DEAL_PROVINCE=0&DEAL_CITY=0&DEAL_PLATFORM=0&BID_PLATFORM=0&DEAL_TRADE=0&isShowAll=1&PAGENUMBER=1&FINDTXT=";
$res = json_decode($this->request_post($url, $post_data),true);

post完整版

/**
     * 模拟post进行url请求
     * @param string $url
     * @param string $param
     */
    private function request_post($url = '', $param = '') {
        if (empty($url) || empty($param)) {
            return false;
        }

        $postUrl = $url;
        $curlPost = $param;
        $ch = curl_init();//初始化curl
        curl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定网页
        curl_setopt($ch, CURLOPT_HEADER, 0);//设置header
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上

        curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
        curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);

        $data = curl_exec($ch);//运行curl
        curl_close($ch);

        return $data;
    }

//调用
            $url = "https://dataapi.bazhuayu.com/token";
            $post_data['username']   = '5955616@qq.com';
            $post_data['password']   = 'wangyuwei875314';
            $post_data['grant_type'] = 'password';
            $o = "";
            foreach ( $post_data as $k => $v )
            {
                $o.= "$k=" . urlencode( $v ). "&" ;
            }
            $post_data = substr($o,0,-1);
            $json = json_decode($this->request_post($url, $post_data),true);


get请求完整版

/**
     * 模拟get进行url请求 带单独一个的请求头
     * @param $key
     * @param $authorization
     * @param $url
     * @return bool|string
     */
    private function get_data($key,$authorization,$url){

        $headers=[
            $key.":".$authorization
        ];

        //初始化
        $curl = curl_init();
        //设置抓取的url
        curl_setopt($curl, CURLOPT_URL, $url);

        //设置头文件的信息作为数据流输出
        curl_setopt($curl, CURLOPT_HEADER, 0);

        //设置获取的信息以文件流的形式返回,而不是直接输出。
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

        //执行命令
        $data = curl_exec($curl);

        //关闭URL请求
        curl_close($curl);
        //显示获得的数据

        return $data;
    }

php使用curl判断404

/* php使用curl判断404*/
function chkurl($url){
    $handle = curl_init($url);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($handle, CURLOPT_CONNECTTIMEOUT, 10);//设置超时时间
    curl_exec($handle);
    //检查是否404(网页找不到)
    $httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
    if($httpCode == 404) {
        return false;
    }else{
        return true;
    }
    curl_close($handle);
}

相关文章

网友评论

      本文标题:curl模拟post或get进行url请求

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