Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共10 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:HttpClient异步

1楼
nuoyan89 发表于:2025/1/23 18:33:00
老师,附件的代码我能使用HttpClient异步吗?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:代码.txt


2楼
有点蓝 发表于:2025/1/23 20:20:00
HttpClient本身不是异步执行的。但是HttpClient可以放到异步函数里使用
3楼
nuoyan89 发表于:2025/1/23 21:36:00
但是我现在放到异步函数中也不行,就是当一个请求没有完成的时候,另一个请求开始后就会报错,因为我调取的 API 是要批量推送数据到指定的数据库中.
4楼
有点蓝 发表于:2025/1/23 21:50:00
这个应该和异步没有什么关系。API开发文档发上来看看
5楼
nuoyan89 发表于:2025/1/23 22:04:00
老师,开发文档是这个https://open.chanjet.com/docs/file/apiFile/tcloud/t+dj/t+ccprkd?id=31035
6楼
有点蓝 发表于:2025/1/23 22:46:00
这种不需要异步,按顺序提交数据即可。另外2条sql都是查询的{出入库明细} ,没有{出入库主表},所有数据都在一个表里面?如果这样没有必要查2次 
7楼
nuoyan89 发表于:2025/1/24 8:14:00
是的,所有数据都在一个表里,只有出入库明细

8楼
有点蓝 发表于:2025/1/24 8:42:00
这个表有几个单据单号?是一个单据单号就发送一次吗,还是所有的单据单号都一起发送?
9楼
nuoyan89 发表于:2025/1/24 9:16:00
是一个单据单号发送一次,这个代码应该可以怎么调整呢
10楼
有点蓝 发表于: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

共10 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02832 s, 3 queries.