首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
V2EX  ›  问与答

[求助] PHP , curl 获取到的 http_code 为 0

  •  
  •   toyuanx · 2018-06-08 09:19:41 +08:00 via Android · 3882 次点击
    这是一个创建于 442 天前的主题,其中的信息可能已经有所发展或是发生改变。

    调一个第三方的接口,开发环境跟测试环境测试时均没有遇到这个问题。 生产环境预发布时经常出现了,大概调四五次会出现一次,查了一下,很多方法说 httpcode 为 0 是没访问到服务,也跟第三方确认了他们确实没收到服务,然后就想是不是网络安全问题,请运维帮忙加了一下这个域名的域名和源码 IP,加了之后还是有这种现象。

    请问各位有没有出现过这种情况的?●^●怎么解决的,除了防火墙,还有其他原因会导致开发环境测试环境没问题,线上概率性访问不到接口吗? curl 的参数会不会有影响呢?

    第 1 条附言  ·  2018-06-08 12:23:21 +08:00
    上午老大坐我旁边(联合开发)已经找到疑似原因的原因了,可能 ca-certificates 的原因。下午继续解决,解决之后回复。

    另,奉劝跟我一样的萌新码,日志日志日志真的是非常非常重要!!!尤其是自己没事封装的通用类,日志一定都得准备好了。
    说一下我现在的日志打印情况:(我原先只记录了入参出参及抛出的异常)
    1、curl_init(),判断是否为 false,为 false 记录日志;
    2、记录 curl_exec();
    3、curl_getinfo();
    4、判断 curl_errorno(),记录 curl_error()及 curl_errno();划重点,curl_errorno(),我遇到的问题就是这个值返回 77,但是 curl_error()的返回为空。

    大佬们如果有什么跟日志相关的心得也不吝赐教,多多指点,万分感谢!
    8 回复  |  直到 2018-06-08 12:26:11 +08:00
        1
    iamsee   2018-06-08 09:22:48 +08:00
    dns 问题之前碰到过的。不知道你用的是域名还是 ip curl 的
        2
    toyuanx   2018-06-08 09:23:43 +08:00 via Android
    老大昨天很晚跟今天大清早一直在说这个问题。。好在我们项目还是预发布,真的佩服那些随时随地能快准稳的解决线上 bug 的人。
        3
    toyuanx   2018-06-08 09:24:28 +08:00 via Android
    @iamsee 域名
        4
    iamsee   2018-06-08 09:26:52 +08:00
    @toyuanx 应该就是 dns 解析域名的问题,你换 ip 试一下如果 ip 可以让运维依照这个解决一下
        5
    iamsee   2018-06-08 09:30:11 +08:00
    或者检查更换下 php 环境等测试下
        6
    jasonhzy   2018-06-08 09:41:50 +08:00
    curl_error($ch); 打印输出看看有什么内容
        7
    toyuanx   2018-06-08 12:24:11 +08:00
    @jasonhzy 打印出来是空,得看 curl_errno
        8
    shiny   2018-06-08 12:26:11 +08:00   ♥ 1
    很多时候我们人肉测试只要跑通就好,但没有测试各种出错的情况。对基础库进行出错情况下的测试尤其重要。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   753 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 19ms · UTC 21:52 · PVG 05:52 · LAX 14:52 · JFK 17:52
    ♥ Do have faith in what you're doing.