速记一次API服务器对接的问题

其实,任务的核心非常直接:将本地的数据通过API接口安全、准确地传输到对方的服务器上。尽管只需传递四个参数,且仅有两个为变量,但往往细节决定成败,稍有不慎便可能功亏一篑。

看上面的参数都没问题,但老提交过去对方服务器提示“请求已过期”,没其它信息,郁闷了。。于是逐个参数去测试,首先nonce,我直接使用 Guid.NewGuid().ToString("N").Substring(0, 32),没问题;于是就剩下最后一个变量参数timestamp了。这个我也感觉没问题就是拿一个毫秒级的时间戳而已,也是手办眼见功夫。。

代码语言:txt复制
  TimeSpan timeSpan = now - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
  long unixTimestampSeconds = (long)timeSpan.TotalSeconds;

但就是奇怪生成出来可以,提交过去就是不行,但将其转为字符串,又可以测试又能通过。当我百思不得其解的时候,突然发现自己电脑的时钟快了几秒钟,会不会就这几秒钟的问题呢?于是将时间改为手动,时间晚几分钟,,问题解决。。

看来有时候要注意一下本地时间与服务器时间的差异。