zoukankan      html  css  js  c++  java
  • 一次 php nusoap 调试过程

      今天跟同事调用一个数据api ,用soap方式调用。本以为很简单的事情,却弄到了晚上。

      因为有过调试经验,直接按照以往的过程直接部署,结果是错误。

      1. 以为是调用方式错了,问了一下对接的同事,没问题,并把参数复制过去,同事在自己的机器上,调试正确。

      2. 仔细询问了一下,发现请求IP 错误,(这个IP 是另外一个同事给的),ip已经下架了。 更换IP 

      3. 更换之后还是不行,发现新的ip 与自己的机器不能通信,新Ip 为线上IP段,而我的开发机是开发段,不能直接访问。

      4. 由于此API 用处不是很多,所以没有开发环境, 更悲剧的是,另一个API只有开发环境,没有线上测试环境, 悲剧

      5. 单独拿到线上测试此接口,竟然还是不行,跟对接同事联调了一下,还是我这里不行,他哪里行。我们都没有办法

      6.找到此API的开发者,看了我的调用方式没有什么问题, 又没有ip限制,这是为什么呢?他在服务段 写了一个测试文件,我用curl 访问了一下,成功! 说明网络通信没问题,还是soap 的调用有问题。

      7.对比发现,他们调用都是用的php 的soap 模块,我们是用nusoap 文件调用。但是经验来说,两种方法都可以调用。对比了nusoap 版本 也没有问题。

      最后还是 开发者发现了问题,是client调用二者还是有区别的。

        二者区别:

            soap 模块 :   $this->client = new nusoapclient(null, array("location" => $this->url, "uri" => "http://data_request/", 'compression' => 

    SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP, 'encoding' => .'utf-8', 'trace' => true));

            nusoap  : $this->client = new nusoapclient($this->url);

      8.最后pE 同学解决了 测试环境不统一的问题,他设置了一个代理(具体方法没问)

      感觉这么小的问题,用了这么长 时间有两个原因:

        1. 自己对nusoap 掌握不熟练,不能快速定位到问题所在。虽然以前调用过,但都是拿来主义,环境都是统一的,基本没有遇到问题。

        2. 业务线长,先后找了四位同学,解决了一个问题,都要从头调式,测试的时候都要改动。 看来 人月 神话,果然是神话呀。

  • 相关阅读:
    FineReport---数据集
    FineReport----单元格元素(数据列、公式、斜线)
    FineReport---样式
    SQL-修改: 将日期修改为空NULL、修改为空的记录
    sql---字段类型转换,保留小数位数,取日期格式,sql获取当前时间,时间处理
    深入浅出Mqtt协议
    一文了解Redis
    RDBMS关系型数据库与HBase的对比
    Greedysky:C++ 建议用 nullptr 而不是 NULL
    Greedysky:C++11 新特性之强制类型转换static_cast
  • 原文地址:https://www.cnblogs.com/renwang/p/3771421.html
Copyright © 2011-2022 走看看