Android Retrofit Multipart图片上传至webapi,客户端发送请求,服务端却收到两个请求的原因

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tiana0/article/details/62229906

android客户端使用Retrofit库发送网络请求,Retrofit库通过发送Multipart请求传输图片至服务器。
服务端使用webapi来处理客户端的Multipart请求。
调试时,出现问题:webapi单步调试时,客户端每发送一个网络请求时,服务端却收到了多个请求。
刚开始对Multipart协议不是很了解,还以为是Multipart协议本身就会分成多个请求来和服务端通信。
但是,我使用c#向服务端发送Multipart请求时,发现服务端只会收到一个请求。所以可以排除”Multipart协议本身就是多请求“这种猜想。
随后,想到可能是android客户端代码有问题,导致请求发送了两次。于是单步客户端代码,并无此种可能。
那么接下来就只可能是Retrofit库的问题了。应该就是Retrofit库的“超时重发”机制导致的,只要增加这个超时时间应该就可以规避这个问题。于是,延长超时时间,问题不再出现,确实是Retrofit库的超时重发机制导致的,当超过一定时间没收到服务端回复,Retrofit库会重发请求。
其实很多操作,都有这种机制。比如访问数据库,服务请求之类的。以后还真需要多注意这点。

猜你喜欢

转载自blog.csdn.net/tiana0/article/details/62229906