投稿データを手動で作成する必要があるアプリケーションを作成しています。しかし、この投稿データには、画像のバイナリデータがあります。したがって、投稿する前の投稿データは次のようになります。
------------------------------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)))
ご覧のとおり、これらすべてのバイナリ変換が原因でAPI固有のエラーが発生していると思いますが、これらの手順がすべて正しいことを確認する必要がありますContentType
。octet-stream
助言がありますか?
注:なぜ私がこのようにやっているのか不思議に思うかもしれませんが、それは彼らの愚かなAPIのせいであり、今はそれに従う必要があります。