Discuz!X 优化移除CURL中端口减少重定向,修复UC通信失败

DiscuzX 3.4 R20210119 最新版本中依旧存在UC通信失败的BUG,我们先来看一下,比如网站首页为:https://www.onexin.com,请求的网址分析如下:

// 请求的原网址:
https://www.onexin.com/api/uc.php?code=91886hSH3Hsu4SA4%2FxPw5Ga922SFGYpgC%2BuMZJXK85FJWiV8R%2BTZRu%2FUjQJ6dUSxjtYqkEm%2FkNo

// 导致通信失败的网址
https://www.onexin.com:443/api/uc.php?code=91886hSH3Hsu4SA4%2FxPw5Ga922SFGYpgC%2BuMZJXK85FJWiV8R%2BTZRu%2FUjQJ6dUSxjtYqkEm%2FkNo

由于CURL代码强制性切换为带端口的网址,此时CURL获取网址会发生重定向,从而导致UC通信失败。

因此,我们将代码请求的网址改为原网址即可。

哪些情况下会发现通信失败?
凡是会发生网址重定向的,UC都会通信失败。

解决方法如下:

打开uc_server/model/misc.php 文件:

查找:
curl_setopt($ch, CURLOPT_URL, $scheme.'://'.($ip ? $ip : $host).':'.$port.$path);
替换为:
curl_setopt($ch, CURLOPT_URL, $url);

转载请注明出处:https://www.onexin.net/discuzx-curl-uc/

随机文章:

1、5款纯div+css制作的弹出菜单(标准且无js)
https://www.onexin.net/pure-div-css-crafted-pop-up-menu-standard-and-non-js/

2、CentOS 5.6 发行注记
https://www.onexin.net/centos-5-6-release-notes/

3、Discuz!X同步好友到漫游应用
https://www.onexin.net/discuz-x-sync-friends-to-roaming-applications/

4、Facebook数据删除请求回调符合通用数据保护法规GDPR
https://www.onexin.net/facebook-gdpr/

5、PHP通过反射实现自动注入参数
https://www.onexin.net/php-reflex/

Leave a Reply