以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- API接口问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=160215) |
||||||||||||||||||||||||
-- 作者:hgzvip -- 发布时间:2021/1/25 2:13:00 -- API接口问题 老师,我想通过Foxtable对接聚宽的API接口,查了很多问题帖子,尝试了很久,都找不到答案,希望老师能解答一下,不胜感激。 API文档的网址:https://www.joinquant.com/help/api/help#JQDataHttp:%E7%AE%80%E4%BB%8B 接口: https://dataapi.joinquant.com/apis 参数:
获得token的实例是: {
"method": "get_token",
"mob": "135xxxxxxx",
"pwd": "xxxxxxxxxx",
} 比如我想通过按一个按钮,返回用户凭证token,我该如何编写代码呢? |
||||||||||||||||||||||||
-- 作者:有点蓝 -- 发布时间:2021/1/25 9:00:00 -- Dim hc As New HttpClient("https://dataapi.joinquant.com/apis") hc.ContentType = "application/json" Dim jo As New JObject jo("method") = "get_token" jo("mob") = "135xxxxxxx" jo("pwd") = "xxxxxxxxxx" hc.Content = jo.ToString
Dim ret As String = hc.GetData() MessageBox.Show(ret) |
||||||||||||||||||||||||
-- 作者:hgzvip -- 发布时间:2021/1/25 10:31:00 -- 非常感谢!以上代码成功返回token(就是还弄不明白为什么许多接口对接的代码都不一样),但是老师,又遇到新的问题了,当我加入token去申请数据时,显示出错,以下是我的代码和出错信息: Dim tx1 As WinForm.TextBox = e.Form.Controls("TextBox1") Dim ncb1 As WinForm.NumericComboBox = e.Form.Controls("NumericComboBox1") Dim hc As New HttpClient("https://dataapi.joinquant.com/apis") hc.C Dim jo As New JObject jo("method") = "get_price" jo("mob") = "189xxxxxxxx" jo("pwd") = "xxxxxx" jo("token") = "5b6a9ba1b2f37bb322667f2f06cc0cb83d6b7038" jo("code") = ncb1.value & ".XSHG" \'代码 jo("count") = "8" \'信息量 jo("unit") = "30m" \'信息类型 hc.Content = jo.ToString Dim ret As String = hc.GetData() tx1.text = ret 我想把回馈的信息显示在文本框内,但执行后,弹窗显示: 无法将类型为“System.String”的对象强制转换为类型“Newtonsoft.Json.Linq.JToken”。 请问是代码还缺少转换的语句吗?该如何解决?谢谢! API文档实例中,返回的信息如下: date,open,close,high,low,volume,money,paused,high_limit,low_limit,avg,pre_close
2018-07-09,9.27,9.50,9.53,9.27,22407527,212109327.00,0,10.20,8.34,9.47,9.27
2018-07-10,9.51,9.47,9.55,9.40,12534270,118668133.00,0,10.45,8.55,9.47,9.50 |
||||||||||||||||||||||||
-- 作者:有点蓝 -- 发布时间:2021/1/25 10:36:00 -- 弹窗显示是哪个事件出的错? |
||||||||||||||||||||||||
-- 作者:有点蓝 -- 发布时间:2021/1/25 10:52:00 -- 返回的数据应该是普通字符串,而不是json数据,不要使用josn来解析,直接拆分字符串,类似:http://www.foxtable.com/webhelp/topics/2629.htm |
||||||||||||||||||||||||
-- 作者:hgzvip -- 发布时间:2021/1/25 12:02:00 -- 老师我这个代码是写在一个按钮上的,另外窗口上加了一个多行文本框,返回的详细信息如下: .NET Framework 版本:4.0.30319.42000 Foxtable 版本:2020.5.29.8 错误所在事件:窗口,窗口1,Button3,Click 详细错误信息: 无法将类型为“System.String”的对象强制转换为类型“Newtonsoft.Json.Linq.JToken”。 另外,API文档说明中,指出返回的信息类型:返回: csv 格式文本数据,少数接口为json 格式字符串[此贴子已经被作者于2021/1/25 12:04:16编辑过]
|
||||||||||||||||||||||||
-- 作者:hgzvip -- 发布时间:2021/1/25 12:14:00 -- 老师我找到问题了,我窗口上有一个数字输入框控件NumericComboBox1,代码部分引用了这个框的Value,我不用这个数值框,换成一个TextBox1控件,引用它的text,就可以了,只是不知道是什么原因: Dim tx1 As WinForm.TextBox = e.Form.Controls("TextBox1") Dim tx2 As WinForm.TextBox = e.Form.Controls("TextBox2") Dim hc As New HttpClient("https://dataapi.joinquant.com/apis") hc.C o n t entType = "application/json" ‘这一句为啥在贴里显示不出来 Dim jo As New JObject jo("method") = "get_price" jo("mob") = "189xxxxxxxx" jo("pwd") = "xxxxxx" jo("token") = "5b6a9ba1b2f37bb322667f2f06cc0cb83d6b7038" jo("code") = tx2.text & ".XSHG" \'代码 jo("count") = "8" jo("unit") = "30m" hc.Content = jo.ToString Dim ret As String = hc.GetData() tx1.text = ret 感谢老师的解答,谢谢! [此贴子已经被作者于2021/1/25 12:16:54编辑过]
|