Foxtable(狐表)用户栏目专家坐堂 → [求助]请问请求API如何携带证书信息


  共有3053人关注过本帖树形打印复制链接

主题:[求助]请问请求API如何携带证书信息

帅哥哟,离线,有人找我吗?
智友软件工作室
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:912 积分:7445 威望:0 精华:0 注册:2013/2/25 13:10:00
[求助]请问请求API如何携带证书信息  发帖心情 Post By:2020/4/8 8:43:00 [显示全部帖子]

有两个地方不清楚
1、按照官方文档请求需要携带证书,请问如何携带证书,从论坛搜了一下,相关资料很少
2、请求发起不从服务器端是否可以?我想从客户端直接发起这样可以吗?

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20200408084230.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
智友软件工作室
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:912 积分:7445 威望:0 精华:0 注册:2013/2/25 13:10:00
  发帖心情 Post By:2020/4/8 9:03:00 [显示全部帖子]

我再看,请问是否可以从客户端直接发起请求呢?

 回到顶部
帅哥哟,离线,有人找我吗?
智友软件工作室
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:912 积分:7445 威望:0 精华:0 注册:2013/2/25 13:10:00
  发帖心情 Post By:2020/4/8 9:12:00 [显示全部帖子]

另外再问一下,现在官方的HttpClient可以直接携带证书吗


 回到顶部
帅哥哟,离线,有人找我吗?
智友软件工作室
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:912 积分:7445 威望:0 精华:0 注册:2013/2/25 13:10:00
  发帖心情 Post By:2020/4/8 10:19:00 [显示全部帖子]

提交数据方法(CheckValidationResult)在全局代码定义后该怎么使用呢?
我看您的例子下载对账单是下面的方法:
'下载对账单
Dim bill_date As String = args(0)
Dim bill_type As String = args(1)

Dim req As WxPayData = Functions.Execute("GetWxPayData")
req.SetValue("bill_date", bill_date) '账单日期
req.SetValue("bill_type", bill_type) '账单类型
req.SetValue("appid", Vars("appid")) '商户号
req.SetValue("mch_id", Vars("mchid")) '商户号
req.SetValue("nonce_str", req.GenerateNonceStr()) '随机字符串
req.SetValue("sign", req.MakeSign()) '签名

Dim url As String = Functions.Execute("GetApiUrl","api_downloadbill")
Dim hc As New HttpClient(url)
hc.C
hc.Timeout = 6
hc.Content = req.ToXML
Dim ret As String = hc.GetData()
Functions.Execute("logtext","下载对账单结果: " & vbcrlf & ret)

Return ret


这里直接使用的是系统HttpClient。

请问使用HttpClient,会自动调取CheckValidationResult证书
还是我需要使用CheckValidationResult这个方法请求url
如果是请问这个CheckValidationResult具体该怎么使用呢?

 回到顶部
帅哥哟,离线,有人找我吗?
智友软件工作室
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:912 积分:7445 威望:0 精华:0 注册:2013/2/25 13:10:00
  发帖心情 Post By:2020/4/8 10:24:00 [显示全部帖子]

在帮助中只看到了定义CheckValidationResult,没有看到使用到的地方,能否给说明一下,如何使用传递证书的吗

 回到顶部
帅哥哟,离线,有人找我吗?
智友软件工作室
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:912 积分:7445 威望:0 精华:0 注册:2013/2/25 13:10:00
  发帖心情 Post By:2020/4/8 10:48:00 [显示全部帖子]

'Dim hc As New HttpClient(url)

'hc.C

'这里还需要加一个添加证书的方法,新版本才能提供

'hc.AddClientCertificate(ProjectPath & "apiclient_cert.p12",Vars("mchid"))

'hc.Timeout = 6

'hc.Content = req.ToXML

'Dim ret As String = hc.GetData()


上面是帮助被注释的

请问这里的'hc.AddClientCertificate(ProjectPath & "apiclient_cert.p12",Vars("mchid"))

就自动调用帮助里面的“提交数据的方法”中的代码了吗?


因为帮助和实例里面都是被注释的

所以对.AddClientCertificate 的使用不是很明白,在官方高级版的帮助中也没有看到AddClientCertificate  的介绍

[此贴子已经被作者于2020/4/8 10:49:17编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
智友软件工作室
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:912 积分:7445 威望:0 精华:0 注册:2013/2/25 13:10:00
  发帖心情 Post By:2020/4/8 11:39:00 [显示全部帖子]

谢谢,就是说需要证书的我就用定义的方法,不需要的就使用系统的HttpClient方法呗
Post(req.ToXML, url, True, 6)
请问true和6这两个参数代表什么意思

 回到顶部
帅哥哟,离线,有人找我吗?
智友软件工作室
  8楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:912 积分:7445 威望:0 精华:0 注册:2013/2/25 13:10:00
  发帖心情 Post By:2020/4/8 14:35:00 [显示全部帖子]

请问证书可以存储在官方提供的ukey中吗?

 回到顶部