背景概述:

我有一个脚本,里面定义了一个方法,方法里面是一个CURL

GET的封装。在使用过程中一起正常。突然发现有一天一直报失败警报。于是,我去查看代码,发现没有任何问题。最后通过百度,发现这个PHP的CURL库并默认情况下,当发送的数据超过1024字节的时候,不会返回响应的内容。这就是问题的所在。

封装的CURL GET函数如下:

function sendRequestGame($url)

{

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_TIMEOUT, 10);

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);

$retData = curl_exec( $ch );

curl_close( $ch );

return $retData;

}

我相信这段代码极少有人会看出来问题。因为,你测试此函数请求一个URL,是能正常收到返回的。但是,假如这个URL的长度超过了1024个字节长度。试想一下?还会正常返回么?答案是否定的。因为,PHP

CURL库默认1024字节的长度不等待数据的返回。只要将以上函数修改为如下即可解决这此问题。

function sendRequestGame($url)

{

$header = array('Expect:');

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_TIMEOUT, 10);

curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);

$retData = curl_exec( $ch );

curl_close( $ch );

return $retData;

}

嗯。现在这个函数,我增加了一个Header。但是,注意,这个Header不能与以下Header一起使用:

'Content-Type:text/html;charset=UTF-8'

否则,依然会接收不到响应的数据。更深层次的原因我也没有去深入研究。

这个问题是在4399工作时与游戏工作室对接API时遇到的问题。这个问题估计与鸟哥提到的CURL BUG一样:《Curl的毫秒超时的一个”Bug”》

作者寒冰遇到这个问题的是,也没有精力从底层分析问题所在。鸟哥的文章从底层分析了原因。大家注意就是了。

php curl 请求失败,PHP CURL库之GET、POST数据大小限制导致请求失败解决方案相关推荐

  1. 导致请求失败 设备硬件出现致命错误_设备硬件出现致命错误,导致请求失败,应该怎么办?...

    展开全部 先看一下是不是有硬件未驱动的,如果有,驱动一下如果没有,再62616964757a686964616fe4b893e5b19e31333365633937把所有接插件擦干净然后重新插牢,再试 ...

  2. 导致请求失败 设备硬件出现致命错误_设备硬件出现致命错误,导致请求失败。请求大神帮忙...

    展开全部 先看一下是不是有硬件未驱动的,如果有,驱动一下如果没有,再62616964757a686964616fe59b9ee7ad9431333365646238把所有接插件擦干净然后重新插牢,再试 ...

  3. http请求响应的组成部分的介绍 用cherome查看请求响应内容 curl命令行的使用

    http请求由3部分组成:请求行 + 请求头 + 请求体 上面是一个GET,和POST请求实例 (1)请求行:由三个组成---请求HTTP的方法,URL,http版本,之间用空格分隔开 (2)请求头: ...

  4. php设置请求头部,php curl如何设置自定义请求头

    php curl设置头的方法:首先设置自定义请求头:然后设置"curl_setopt($ch, CURLINFO_HEADER_OUT, );":最后执行"curl_ge ...

  5. curl命令java_上curl java 模拟http请求

    最近,我的项目要求java模拟http请求,获得dns解决 tcp处理过的信息特定的连接. java api提供urlConnection apache提供的httpClient都不能胜任该需求,二次 ...

  6. php asp 发起post请求,PHP用curl函数POST请求到ASP页面提示无效请求

    如题,一提交即返回以下信息: 错误 您所请求的网址(URL)无法获取 --------------------------– 当尝试进行以下请求时: POST /card/pay_card.aspx ...

  7. php curl post 下载文件,Curl提交POST请求到一个网址 如何获取返回的文件名

    Curl提交POST请求到一个网址 网址会返回一个文件 如果输出会输出这个文件的内容 如何获取返回的文件名 或者如何把这个文件保存呢 function liansuo_post($url,$data) ...

  8. curl post json_curl 模拟 GETPOST 请求,以及 curl post 上传文件

    curl 模拟 GETPOST 请求,以及 curl post 上传文件 一般情况下,我们调试数据接口,都会使用一个 postman 的工具,但是这个工具还是有点大了.事实上,我们在调试一些小功能的时 ...

  9. curl post请求表单_curl 模拟POST方法 发送数据

    用POST方法发送数据当发起GET请求时,数据可以通过"查询字串"(query string)传递给一个URL.例如,在google中搜索时,搜索关键即为URL的查询字串的一部分: ...

最新文章

  1. threadx 信号量 应用_ThreadX——IPC应用之事件标志
  2. 使用webpack打包的后,公共请求路径的配置问题
  3. ACCP学习旅程之----- 使用HTML语言开发商业站点(第一章 HTML的基本标签)
  4. PAT L2-005 集合相似度
  5. python怎么自动生成测试报告_python生成接口自动化测试报告模版
  6. Go如何按行读取文本
  7. 1359C. Mixing Water
  8. 一道内存分配的面试题后续
  9. java修改配置文件参数_在java类中获取在.properties配置文件中设置的参数
  10. android9有深色模式吗,深色模式还是黑色模式?微信把所有人都搞懵了
  11. 【Python3网络爬虫开发实战】 2.3-爬虫的基本原理
  12. 服务器维护经验分享,医院IT运维经验分享.pdf
  13. 电泳涂装行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  14. 荐书丨如何快速成为150万+小程序开发者中的一员
  15. RTMP网页视频抓取
  16. Mac右键添加Google搜索
  17. (一)双目标定OpenCV读双目摄像头合并图像并分割
  18. The end tag is unbalanced异常
  19. springboot企业人力资源管理系统毕业设计源码291816
  20. 用递归算法,把任一给定的十进制正整数转换成八进制数输出。

热门文章

  1. 程序员面试金典——2.7回文链表
  2. Leetcode 276.栅栏涂色
  3. 【算法基础】动态规划解题实例之野营问题
  4. Hub与Switch的帧的广播细节
  5. C++多线程map读写加锁
  6. latex 论文绘图: 图像文字重叠
  7. tp5 mkdir(): Permission denied 问题
  8. 微信小程序----相对路径图片不显示
  9. CentOS/RHEL Linux安装EPEL第三方软件源
  10. unix环境高级编程基础知识之第一篇