php http和https接口,php7实现http和https请求web服务-通用工具类-Go语言中文社区

前段时间做微信开发,因微信有众多接口调用,因此自己整理了一套比较通用的工具类,用以做接口 调用,考虑到方便性和简洁性,这里选择使用php的curl扩展库来实现

1 curl启用和apache的配置

先来看看网友们提供的众多错误方法,本人被这些资料坑的太惨 了

(1)把dll复制到system32(64位的路径是其他)附带重启apache

(2) 直接到php.ini开启curl扩展即可(这个哪有那么简单)

正确的做法如下:

首先打开curl扩展,直接去php.ini里修改:

; Notes for Windows environments :

;

; - Many DLL files are located in the extensions/ (PHP 4) or ext/ (PHP 5+)

;   extension folders as well as the separate PECL DLL download (PHP 5+).

;   Be sure to appropriately set the extension_dir directive.

;

;extension=bz2

extension=curl

接着修改apache的配置文件httpd.conf,在最后加上如下配置,路径按需修改

LoadFile D:/phpenv/php7/php7ts.dll

LoadFile D:/phpenv/php7/libeay32.dll

LoadFile D:/phpenv/php7/ssleay32.dll

LoadFile D:/phpenv/php7/libssh2.dll

c56032d44cd4e129c928c2ec4817655b.png

2  直接上工具类代码

class RequestUtil{

function https_request($url,$data=null){

$curl=curl_init();

curl_setopt($curl, CURLOPT_URL, $url);

if(!empty($data)){

curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

curl_setopt($curl,CURLOPT_POST, true);

}

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

$result=curl_exec($curl);

curl_close($curl);

return $result;

}

function http_request($url,$data=null){

$curl=curl_init();

curl_setopt($curl, CURLOPT_URL, $url);

if(!empty($data)){

curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

curl_setopt($curl,CURLOPT_POST, true);

}

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

$result=curl_exec($curl);

curl_close($curl);

return $result;

}

}

?>

工具类没写什么注释,如果看不明白,查阅下php开发手册,里面有详细说明

3 有关$data的注意事项

大部分post请求,只需要把参数写到一个数组里,以微信自定义菜单的创建接口做说明,如下:

$data=json_encode($menuJson,JSON_UNESCAPED_UNICODE)

一些情况下,请求的body可能只是一个字符串,此时直接拼接参数即可

$postStr=array("api_key"=>"xxx_","api_secret"=>"xxx","image_base64"=>$res,"return_attributes"=>"gender,age,ethnicity");

$o = "";

foreach ( $postStr as $k => $v )

{

$o.= "$k=" . urlencode( $v ). "&" ;

}

$postStr = substr($o,0,-1);

这里的$postStr和$data代表同一个东西

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值