php curl 框架,php curl

因近期网站更换新框架,在新旧框架未完全替换完成期间,web网站新增的所有功能模块,皆需要CI跟laravel进行数据交互处理

所以就涉及到curl的使用

废话不多说,上图

dfa1f06c8c4c

curl数据传递

首先使用curl的时候先要初始化:curl_init()

然后需要进行一系列变量的设置:curl_setopt()

获取curl执行的结果:curl_exec()

最后释放curl:curl_close()

其中这里强制使用以下两个数据信息是为了避免首次访问的速度异常的慢的问题

1. curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); //强制协议为1.0

2. curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 ); //强制使用IPV4协议解析域名

同时3. curl_setopt($ch, CURLOPT_HTTPHEADER, array(''Expect: '')); //头部要送出'Expect: '也可以防止访问过慢

具体curl_setopt变量的设置信息可参考:curl_setopt函数

在使用curl做POST的时候, 当要POST的数据大于1024字节的时候, curl并不会直接就发起POST请求, 而是会分为俩步,

1. 发送一个请求, 包含一个Expect:100-continue, 询问Server使用愿意接受数据

2. 接收到Server返回的100-continue应答以后, 才把数据POST给Server

这是libcurl的行为.

于是,这样就有了一个问题, 并不是所有的Server都会正确应答100-continue, 比如lighttpd, 就会返回417 “Expectation Failed”, 则会造成逻辑出错,,

解决方法如上所示CURLOPT_HTTPHEADER变量参数的设置

现在很多服务器都开启了 IPv6 却没有路由,无法真正工作,反而导致一些不可预料的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值