Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

发现一些问题 #1

Open
xuqihua opened this issue Nov 18, 2021 · 7 comments
Open

发现一些问题 #1

xuqihua opened this issue Nov 18, 2021 · 7 comments

Comments

@xuqihua
Copy link

xuqihua commented Nov 18, 2021

  1. 工厂实例不支持多个实例,不支持多个来源
  2. 目前发现有些请求需要Content-Type 有些不需要,CURLOPT_HTTPHEADER 里都有设置,但是api返回有些要有些不要,主要是我的生产环境有问题,测试环境没问题,问题未知
  3. 不支持取消token模式验证,在同个进程中如果实例一直请求接口会出现token过期的情况下(边界问题)
@shinn-lancelot
Copy link
Member

感谢反馈,有时间我会进行完善

@shinn-lancelot
Copy link
Member

方便的话,建议提供截图

@xuqihua
Copy link
Author

xuqihua commented Nov 18, 2021

方便的话,建议提供截图

只要第二个问题是有问题的,海康客服给我的我看了写法跟你这个包里是一样的,但是它的就没问题,就是访问接口返回的验证字符串是提示没有content-type那行的,所以验证会失败。

@shinn-lancelot
Copy link
Member

方便的话,建议提供截图

只要第二个问题是有问题的,海康客服给我的我看了写法跟你这个包里是一样的,但是它的就没问题,就是访问接口返回的验证字符串是提示没有content-type那行的,所以验证会失败。

目前我们这边线上环境是可以正常调用的。你的情况好像是认证有问题,目前sdk里综合安防平台的认证是token方式优先(官方是1.4版本才有)。你可以先检查下平台版本,看看调接口使用的是哪个认证方式,然后修改content-type试试。

@shinn-lancelot
Copy link
Member

查了下,官方demo里ak/sk认证方式的content-type为:text/plain;charset=UTF-8,与sdk里不一致,估计是这个原因

@xuqihua
Copy link
Author

xuqihua commented Nov 18, 2021

查了下,官方demo里ak/sk认证方式的content-type为:text/plain;charset=UTF-8,与sdk里不一致,估计是这个原因

不是Content-Type 值的问题,我可能没有描述清楚我发送的问题
就是我现在生产环境
调用两个不同的接口 比如
/api/irds/v1/card/advance/cardList 暂时别名 URL1
/api/resource/v1/org/rootOrg 暂时别名 URL2

两个请求我都没去掉header的Content-Type 设置
签名串是里不加Content-Type那行 比如签名串是下面的才能通过验证
URL1:
POST \n */* \n application/json\n x-ca-key:1231243298 \n x-ca-timestamp:1479956865000 \n /api/irds/v1/card/advance/cardList

URL2:
POST \n */* \n x-ca-key:1231243298 \n x-ca-timestamp:1479956865000 \n /api/resource/v1/org/rootOrg

区别就是一个需要application/json\n 一个不需要
这种情况只在我的生产服务器上有问题

@xuqihua
Copy link
Author

xuqihua commented Nov 20, 2021

@shinn-lancelot 问题2我测试了一遍,Libraries\Curl\Curl::post 方法使用的curl_setopt_array 有bug 我改成了

public static function post($url = '', $data = '', $options = array()) { if (is_array($data)) { $data = http_build_query($data); } $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_TIMEOUT, 30); //设置cURL允许执行的最长秒数 if (!empty($options)) { curl_setopt_array($ch, $options); } //https请求 不验证证书和host curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $res = curl_exec($ch); curl_close($ch); return $res; }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants