问题描述:
- 抓包就能百分百的上传成功,不抓包百分百的上传失败,报400或者超时,这就导致没办法抓包,Charles和Burp都试了一样的结果。
- 然后发现只能上传40k以下的图片,超过40k的图片一上传就失败。
- android上传没任何问题。
- 网页上传没任何问题。
- SSL用的Let's encrypt。
- 服务端的 TLS1.2 神马的配置没问题,因为其他接口都正常,只有这个上传有问题。
问题定位:
- 一开始以为是我这边的问题,然后直接用
NSURLSessionDataTask
实现了一把上传,发现一样的问题。 - 直接用ios上的Safari上传,发现一样400错。
- 所以定位到应该是服务器那边的问题。
问题解决:
服务器那边有个BufferSize设置的太小,调大即可
至于为什么其他的设备能上传成功,而iphone不行。
猜想:
可能因为其他设备发送给服务器的数据,服务器可以一块一块的接收,每次接收一个BufferSize直至接收完。而iphone跟服务器的连接只能使服务器接收一块,超过一块BufferSize就跪。
如果其他道友有遇见这个问题,希望我的这点经验能帮助到你~