I am building an application where I need to build post data manually. But in this post data, there is an image binary data. So before posting it, the post data should look like this:
------------------------------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…
Everything here is built using simply StringBuilder
.
We are working with multi-tiered applications. This is how I convert an Image into Base64String
to pass it along to the final tier:
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())
which works fine I believe and then in the final tier where the post data is being built:
oPostData.Append(Encoding.ASCII.GetString(Convert.FromBase64String(ImageData)))
As you can see the ContentType
should be octet-stream
but I am getting API specific error which I am thinking because of the all these binary conversion stuff but I need to confirm all these steps I showed you is correct. Any suggestions?
Note: You may wonder why I am doing this like that but it is their stupid API's fault and now I have to follow it.