PHP发起RESTful API请求

<?php

function update(){
    $url = 'https://jsonplaceholder.typicode.com/posts/1';
    $data = new \stdClass();
    $data->id = 1;
    $data->title = 'foo';
    $data->body ='bar';
    $data->userId = 1;
    $jsonData = json_encode($data);
    $contents = restful_request($url,$jsonData,$method = 'PUT');
    var_dump($contents) ;
    echo __FILE__;
    echo '<br>';
    echo __FILE__;
    echo '<br>';
    die();
}
update();

 //执行curl请求
    function restful_request( $url, $jsonData='', $method='GET'){
        $method=strtoupper($method);
        $headerArray =["Content-type:application/json;"];
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,$url);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        if($method=='GET'){
            if(empty($jsonData)==false&&is_array($jsonData)){
                $queryString="";
                foreach($jsonData as $param){
                    if($queryString=!""){
                        $queryString.='&';
                    }
                    $queryString.=$param;
                }
                $url.="?".$queryString;
                curl_setopt($ch, CURLOPT_URL,$url);
            }
            $headerArray[]="Accept:application/json";
        }else if($method=='POST'){
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
            $headerArray[]="Accept:application/json";
        }else if(in_array($method,['PUT','DELETE','PATCH'])){
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST,$method);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
        }
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        // var_dump($headerArray) ;
        // echo __FILE__;
        // echo '<br>';
        // echo __FILE__;
        // echo '<br>';
        // die();
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headerArray);
        $output = curl_exec($ch);
        curl_close($ch);
        $output = json_decode($output,true);
        return $output;
    }

RESTful api测试接口参考https://jsonplaceholder.typicode.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值