使用RESTful API以post+json的方式给服务器传数据

思考半天,想用标题把使用到的东西都表达出来。最后还是语文不过关,没能写完整…
前段时间,出于业务需要,对方服务器希望能取我系统中的数据。我们提供了ftp上传的方式,对方觉得麻烦。要求以这种方式传数据。但是这种直接传数据的方式,如果数据量太大,会因为网速等原因,产生许多不必要的麻烦。
这里明确一下,主要是使用Curl的扩展,通过post提交json数据到另外的服务器。
本来项目中还需要一个linux定时任务,来定时提交数据。因为代码没写完。所以先不对这一部分说明。
前期准备
1、需开启php的curl扩展(也可以使用file类文件,本文使用curl)
2、关闭yii2中的csrf验证。本文为了方便直接关闭当前控制器的验证。项目中避免使用此方法。防止跨域脚本攻击。

public function init(){
   
        $this->enableCsrfValidation = false;
    }

3、实际使用的时候会出现无法请求服务器状况。关闭防火墙即可。

本地测试代码

public function actionHttprest(){
   

        function http_post_json($url, $jsonStr){
   

            $ch = curl_init();

            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonStr);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                    'Content-Type: application/json; charset=utf-8',
                    'Content-Length: ' . strlen($jsonStr)
                )
            );
            $response = curl_exec($ch);
            $errorno = curl_errno($ch);
            $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值