• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

求解惑 , php向其它服务器请求时经常响应失败.该怎么解决

php 搞代码 4年前 (2022-01-24) 24次浏览 已收录 0个评论

求解惑 , php向其它服务器请求时经常响应失败.
1 直接用file_get_contents 来实现
file_get_contents( $url );

2 使用curl 扩展.
$ch = curl_init();
$timeout = 30;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$contents = trim(curl_exec($ch));
curl_close($ch);

3 socket 套接.
$address = ‘ http://1.2.3.4:9001/’;
$path = ‘/aaa/bbb’;
$sock = fsockopen($address, 80, $errno, $errstr, 30);
if (!$sock) die(“$errstr ($errno)\n”);
$psw = md5(‘123.456’);
$data = “xxx=xxx&yyy=yyy”;
fwrite($sock, “POST $path HTTP/1.0\r\n”);
fwrite($sock, “Host: localhost\r\n”);
fwrite($sock, “Content-type: application/x-www-form-urlencoded\r\n”);
fwrite($sock, “Content-length: ” . strlen($data) . “\r\n”);
fwrite($sock, “Accept: */*\r\n”);
fwrite($sock, “\r\n”);
fwrite($sock, “$data\r\n”);
fwrite($sock, “\r\n”);
$headers = “”;
while ($str = trim(fgets($sock, 4096)))
$headers .= “$str\n”;
$body = “”;
while (!feof($sock))
$body .= fgets($sock, 4096);
fclose($sock);
$body1 = explode(“#”,$body);
return $body1;

三种方式均效果缓慢。

直接输出 echo “<iframe src = ‘$url’></iframe>”; 时正常.

上述代码均在for 循环中实际运行。下面的抓包的效果

之前访问都挺好的,最近,使用时,经常卡住。会报错
求各位朋友帮忙!

——解决方案——————–
1、考虑是否 cookie 的影响
2、应该设置来路

都是内网地址,把图涂得那么乱干什么
——解决方案–本文来源gao.dai.ma.com搞@代*码#网搞代gaodaima码——————
源地址的网络不好?
——解决方案——————–

探讨

感觉是明显被请求的地方,连接资源有限。有没有办法建立一个持久连接。需要的时候,用这个资源。 不用每次连接时,都去开一个资源。

——解决方案——————–

探讨

感觉是明显被请求的地方,连接资源有限。有没有办法建立一个持久连接。需要的时候,用这个资源。 不用每次连接时,都去开一个资源。

——解决方案——————–
连接太频繁了,疑似DOS攻击,进临时黑名单了。

直接用curl,请求keepalive即可。

CURLOPT_FRESH_CONNECT => false
CURLOPT_FORBID_REUSE => false

配置这两个选项即可,curl_exec之后不用关闭了,下次继续用。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:求解惑 , php向其它服务器请求时经常响应失败.该怎么解决

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址