Foxtable(狐表)用户栏目专家坐堂 → HttpClient异步


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

主题:HttpClient异步

美女呀,在线,快来找我吧!
nuoyan89
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:529 积分:3684 威望:0 精华:0 注册:2020/10/9 8:45:00
HttpClient异步  发帖心情 Post By:2025/1/23 18:33:00 [只看该作者]

老师,附件的代码我能使用HttpClient异步吗?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:代码.txt



 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112001 积分:570177 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/1/23 20:20:00 [只看该作者]

HttpClient本身不是异步执行的。但是HttpClient可以放到异步函数里使用

 回到顶部
美女呀,在线,快来找我吧!
nuoyan89
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:529 积分:3684 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2025/1/23 21:36:00 [只看该作者]

但是我现在放到异步函数中也不行,就是当一个请求没有完成的时候,另一个请求开始后就会报错,因为我调取的 API 是要批量推送数据到指定的数据库中.

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112001 积分:570177 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/1/23 21:50:00 [只看该作者]

这个应该和异步没有什么关系。API开发文档发上来看看

 回到顶部
美女呀,在线,快来找我吧!
nuoyan89
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:529 积分:3684 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2025/1/23 22:04:00 [只看该作者]

老师,开发文档是这个https://open.chanjet.com/docs/file/apiFile/tcloud/t+dj/t+ccprkd?id=31035

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112001 积分:570177 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/1/23 22:46:00 [只看该作者]

这种不需要异步,按顺序提交数据即可。另外2条sql都是查询的{出入库明细} ,没有{出入库主表},所有数据都在一个表里面?如果这样没有必要查2次 

 回到顶部
美女呀,在线,快来找我吧!
nuoyan89
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:529 积分:3684 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2025/1/24 8:14:00 [只看该作者]

是的,所有数据都在一个表里,只有出入库明细


 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112001 积分:570177 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/1/24 8:42:00 [只看该作者]

这个表有几个单据单号?是一个单据单号就发送一次吗,还是所有的单据单号都一起发送?

 回到顶部
美女呀,在线,快来找我吧!
nuoyan89
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:529 积分:3684 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2025/1/24 9:16:00 [只看该作者]

是一个单据单号发送一次,这个代码应该可以怎么调整呢

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112001 积分:570177 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/1/24 10:13:00 [只看该作者]

Dim dt As DataTable
Dim cmd As New SQLCommand
cmd.ConnectionName = "ERP系统"
cmd.CommandText = "Select distinct 单据单号 From {出入库明细} Where 状态 = 1 And 单据单号 is not null"
dt = cmd.ExecuteReader()
Dim i1 As Integer = 1
For Each dr1 As DataRow In dt.DataRows '获取来自数据库的表明细信息
    Dim hc As New HttpClient(Vars("apiurl") & "/tplus/api/v2/productReceive/Create")
    hc.Headers.Add("appKey", appKey)
    hc.Headers.Add("appSecret", appSecret)
    hc.Headers.Add("openToken", accessToken)
    hc.Headers.Add("Content-Type", "application/json")
    hc.ContentType = "application/json"
    Dim jo As New JObject
    Dim s As String = dr1("单据单号")
    
    Dim dt1 As DataTable
    cmd.CommandText = "Select * From {出入库明细} Where 单据单号= '" & s & "' And 状态 = 1"
    dt1 = cmd.ExecuteReader()
    Dim dr As DataRow = dt1.DataRows(0)
    jo("dto") = New JObject
    jo("dto")("ExternalCode") = s '外部系统数据编号,后台做唯一性检查
    'jo("dto")("Code") = "单据编号 false"
    jo("dto")("VoucherType") = New JObject
    jo("dto")("VoucherType")("Code") = "ST1002"
    jo("dto")("VoucherDate") = dr("单据日期").ToString
    jo("dto")("BusiType") = New JObject
    jo("dto")("Warehouse") = New JObject
    jo("dto")("Warehouse")("Code") = dr("仓库编码").ToString
    jo("dto")("BusiType")("Code") = dr("操作编码").ToString
    jo("dto")("Warehouse")("Name") = dr("库位").ToString
    jo("dto")("Clerk") = New JObject
    jo("dto")("Clerk")("Code") = dr("制单人员").ToString
    jo("dto")("Clerk")("Name") = dr("制单人员").ToString
    'jo("dto")("Memo") = "表头备注"   
    '==========下面是明细信息
    Dim jalist As New JArray
    For i As Integer = 0 To dt1.DataRows.Count - 1 '获取来自数据库的表明细信息
        dr = dt1.DataRows(i)
        Dim jolist As New JObject
        jolist("Code") = i '行号,从1开始自增长
        jolist("Inventory") = New JObject '行号,从1开始自增长
        jolist("Inventory")("code") = dr("存货编码").ToString
        ……自行补齐明细数据
        jolist("Amount") = CInt(dr("成本金额"))
        jalist.Add(jolist)
        jo("dto")("RDRecordDetails") = jalist 
    Next
    hc.Content = jo.tostring
    Dim ret As String = hc.GetData()
    If ret.Contains("error") Then
        MsgBox(ret)
    End If 
Next


 回到顶部