所以我目前正在研究 HTTP 文件上传(在使用 aHttpWebRequest
将一些文件上传到外部 API 的上下文中),通常我看到几十个破折号被用作边界。浏览器似乎通常也会在破折号中添加一个随机选择的十六进制数字。
至少可以说这似乎非常笨拙(我敢说协议中的缺陷吗?)。由于我的特定用例涉及的数据很可能包含我使用的边界(无论我选择什么;数据都是某种转储),我需要 100% 确定我上传的文件不会破坏事情。随机选择一个数字对我来说根本是不可接受的,即使实际碰撞的可能性是十亿分之一。如果目标脚本检测到一些错误,我也不喜欢使用不同的随机选取的边界重试。
避免这种情况的唯一方法是扫描我的整个文件(通常是几兆字节)以查看我选择的边界是否不存在?我需要通过上传执行许多不同的请求,因此为了避免 I/O 损失,我想避免扫描整个文件。
或者是否有某种尺寸参数我可以传递,这样边界就变成了一种形式?
我错过了什么?更改远程 API 不是一种选择,因此无法使用 Base64 编码或添加某种转义字符。