以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何使用httpclient操作API接口  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=184393)

--  作者:kenmen
--  发布时间:2022/12/5 15:10:00
--  [求助]如何使用httpclient操作API接口
老师,
请问要如何使用httpclient操作API接口呢?
接口文件如下:
http: / / api.amtxts.com/?p=1130

--  作者:有点蓝
--  发布时间:2022/12/5 15:18:00
--  
大概这样

Dim hc As New HttpClient("http://ERPAPI站点/INDX/ADDDATA")
hc.Headers.Add("Authorization","授权接口所获取的值")
hc.ContentType = "application/json"
Dim jo As New JObject
jo("PGM") = "INDX"
jo("INDX") = new jarray
Dim jo2 As New JObject
jo2("IDX_NO") = "03"
jo2("NAME") = "文具类"
jo("INDX").add(jo2)
hc.Content = jo.ToString
Dim ret As String = hc.GetData()
MsgBox(ret )


--  作者:kenmen
--  发布时间:2022/12/5 15:34:00
--  
老师,
我的语法如下,返回的错误讯息是『未将对象引用设置到对象的实例』,请问这样写有错吗?
Dim cmd As New SQLCommand
cmd.C
cmd.CommandText = "XXX"
Dim dt As DataTable = cmd.ExecuteReader
For Each dr As DataRow In dt.Select("", "FEATURE_GROUP_CODE")
    Functions.Execute("SunlikeLoginToken", "XXX", "XXX", "XXX", "XXX")
    Dim hc As New HttpClient("http://192.168.0.6/erpapi/INDX/ADDDATA")
    hc.Headers.Add("Authorization", Vars("sunlikeToken"))
    hc.C
    Dim jo As New JObject
    jo("PGM") = "INDX" \'程序代号
    jo("INDX") = New JObject \'新增中类资料 
    jo("INDX")("IDX_NO") = dr("FEATURE_GROUP_CODE").ToString
    jo("INDX")("NAME") = dr("FEATURE_GROUP_NAME").ToString
    If dr("REMARK").ToString <> "" Then
        jo("INDX")("REM") = dr("REMARK").ToString
    End If 
    jo("INDX")("IDX_UP") = "0000000000"
    hc.Content = jo.ToString
    Dim ret As String = hc.GetData
    Output.Show(ret)
Next

--  作者:有点蓝
--  发布时间:2022/12/5 15:53:00
--  
应该是单元格有空值导致的

jo("INDX")("IDX_NO") = dr("FEATURE_GROUP_CODE").ToString
改为
jo("INDX")("IDX_NO") = cstr(dr("FEATURE_GROUP_CODE"))

其它列一样,自己改改

--  作者:kenmen
--  发布时间:2022/12/5 15:59:00
--  
老师,
我修改之后错误讯息变成『凭证为空』,我想看看我提交的内容是啥?
请问有什么方式能知道我这边提交上去的内容呢?

[此贴子已经被作者于2022/12/5 16:00:27编辑过]

--  作者:有点蓝
--  发布时间:2022/12/5 16:02:00
--  
hc.Content = jo.ToString
msgbox(hc.Content)

--  作者:kenmen
--  发布时间:2022/12/5 16:09:00
--  
老师,请问前面的『Headers』部分,能看到吗?
--  作者:有点蓝
--  发布时间:2022/12/5 16:40:00
--  
msgbox(Vars("sunlikeToken"))
hc.Headers.Add("Authorization", Vars("sunlikeToken"))