PHP手动封装curl故障记录

简介: 对接第三方接口时http请求header头的封装和response的处理

在近期的一次对接第三方接口时出现了一个很疑惑的问题,调试时单独调用一次的接口没问题,但是重复调用多次的接口却出现http200的响应,Response Body的响应确实nginx 400.

开始以为时对方的服务器可用性不强,导致的问题.排查后发现单独调用他们的一个接口正常响应,组合调用的话第二个请求调用不能正常响应,请求发起都是通过父类中封装的get方法发送的请求.

在一番排错后才发现原来是在PHP一个脚本执行周期中对象的属性时常驻的.而且对方的接口入参限制十分严格,在我上一次的请求时header头信息已经被写入,resonse数据也以写入,也就是说curl的对象已经被污染.所以导致的nginx400的响应.

应当谨记在面向对象过程中注意对象数据的变动.

目录
相关文章
|
1月前
|
数据采集 JavaScript 网络安全
为什么PHP爬虫抓取失败?解析cURL常见错误原因
豆瓣电影评分是电影市场的重要参考,通过网络爬虫技术可以高效采集评分数据,帮助电影制作和发行方优化策略。本文介绍使用PHP cURL库和代理IP技术抓取豆瓣电影评分的方法,解决反爬机制、网络设置和数据解析等问题,提供详细代码示例和优化建议。
为什么PHP爬虫抓取失败?解析cURL常见错误原因
|
7月前
|
PHP 开发者
【专栏】介绍PHP的命名空间,它是一个用于封装代码、避免名称冲突的机制
【4月更文挑战第27天】本文介绍了PHP的命名空间,它是一个用于封装代码、避免名称冲突的机制。命名空间的作用包括:防止大型项目中的命名冲突,提升代码可读性和可维护性,以及方便代码重用。文章详细阐述了如何定义、导入命名空间,使用完全限定名称以及设置命名空间别名。通过实例展示了命名空间在项目模块划分和第三方库如Laravel中的应用,强调了命名空间在组织和管理PHP代码中的关键作用。
73 4
|
5月前
|
Serverless PHP
【PHP常用函数封装】 php 判断两个数组所有的值是否是完全相等
【PHP常用函数封装】 php 判断两个数组所有的值是否是完全相等
45 3
|
5月前
|
Serverless PHP
【PHP常用函数封装】 php 判断a数组里是否完全包含b数组
【PHP常用函数封装】 php 判断a数组里是否完全包含b数组
35 1
|
6月前
|
PHP
php使用curl新增微信临时素材(上传图片)
php使用curl新增微信临时素材(上传图片)
295 4
|
6月前
|
JSON PHP 数据格式
蓝易云 - PHP用CURL发送Content-type为application/json的POST请求方法
在这段代码中,我们首先创建了一个包含我们要发送的数据的数组,并使用 `json_encode`函数将其转换为JSON格式。然后,我们初始化了一个cURL会话,并设置了一些选项,包括POST请求方法、要发送的数据、返回结果和HTTP头部信息。最后,我们执行了cURL请求并关闭了会话。
168 2
|
6月前
|
Web App开发 API PHP
PHP封装的不错的一个Curl方法
This is a PHP function named `teacher_curl` that wraps around the cURL library for making HTTP requests. The function initializes a cURL session, sets various options such as disabling SSL verification, sets headers, handles POST data
150 0
|
6月前
|
网络协议 Linux API
php curl执行太慢解决
网站访问快速,但API接口由curl_exec调用时遭遇显著延迟。问题根源在于DNS配置不当。切换至常用DNS,如114.114.114.114,立即提升了接口响应速度。
165 0
|
7月前
|
PHP
php curl获取cookie
php curl获取cookie
50 0