我正在构建一个需要手动构建发布数据的应用程序。但是在这个帖子数据中,有一个图像二进制数据。所以在发布之前,发布的数据应该是这样的:
------------------------------8cc097679560ebc
Content-Disposition: form-data; name="mode";
test
------------------------------8cc097679560ebc
Content-Disposition: form-data; name="cropped";
false
------------------------------8cc097679560ebc
Content-Disposition: form-data; name="Image"; filename="C:\Temp\image_front1.jpg" Content-Type: application/octet-stream
…binary data…
这里的一切都是使用简单StringBuilder
的 .
我们正在处理多层应用程序。这就是我将图像转换Base64String
为将其传递到最后一层的方式:
Dim image As Image = image.FromFile("samplecheck.jpg")
Dim stream As New System.IO.MemoryStream
image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg)
oDeposit.Image = Convert.ToBase64String(stream.ToArray())
我相信这很好,然后在构建帖子数据的最后一层:
oPostData.Append(Encoding.ASCII.GetString(Convert.FromBase64String(ImageData)))
正如您所看到的,ContentType
应该是octet-stream
,但由于所有这些二进制转换的东西,我正在考虑 API 特定的错误,但我需要确认我向您展示的所有这些步骤是正确的。有什么建议么?
注意:您可能想知道我为什么要这样做,但这是他们愚蠢的 API 的错,现在我必须遵循它。