关于http post请求

我写的程序用http post向服务器索要数据,但是偶尔会出现:我发送一个请求被阻塞掉,等到下一个请求发出去的时候就一起发出去了。然后数据就错乱了。
有没有人能帮忙解释下为什么?

然后我想改成,如果规定时间内服务器没有回复我,我就认为是发送失败,我就把上次发的请求撤回。
但是不清楚能不能已经发出去的post请求?

下面是我的post请求写法

img

服务器响应的时间是不确定的,最好的办法就是发送的请求带上时间戳及业务guid数据,同一个业务数据,只有时间较新的被接受,如果时间戳信息较已执行的指令早,那么久放弃执行

网络是不会保证顺序的。否则就不会有“抢票”一说了

所以就如同楼上所说,你的自己加时间戳去判定时间

如果说只要最新数据,你可以cancel掉上一个任务, httpclient 支持 异步,当然也支持CacenlToken

如果说你需要时序数据,那么只能加Channel,加一个列表,挨个订阅后 await 他,当然这个有超时。
同样如果你自己这里加锁了一样会如此,如果你加锁,他都不会进入,只会等着锁放开了才一起进入

至于阻塞不阻塞把,服务器的人怕你把他刷挂了。所以他们有的是手段做限流,做批次,做延迟异步回复的。