如何使用MTOM将vb6中带有图像附件的soap发送到c#中的web服务?

如何使用MTOM将vb6中带有图像附件的soap发送到c#中的web服务?,c#,soap,vb6,bytearray,mtom,C#,Soap,Vb6,Bytearray,Mtom,这是我的代码: =>my web.config(c#)的一部分: =>我尝试发送的soap(vb6): 标题: objHttpRequest.SetRequestHeader "Content-Type", "multipart/related; type=""application/xop+xml"";start=""<http://tempuri.org/0>"";boundary=""uuid:d2d519f9-a921-436c-95b0-e31576611a01+id=16

这是我的代码:

=>my web.config(c#)的一部分:

=>我尝试发送的soap(vb6):

标题:

objHttpRequest.SetRequestHeader "Content-Type", "multipart/related; type=""application/xop+xml"";start=""<http://tempuri.org/0>"";boundary=""uuid:d2d519f9-a921-436c-95b0-e31576611a01+id=16"";start-info=""text/xml"""
objHttpRequest.SetRequestHeader "SOAPAction", strNameSpace_ & "IFileHostService/" & strAction
objHttpRequest.SetRequestHeader "MIME-Version", "1.0"
objHttpRequest.SetRequestHeader“内容类型”,“多部分/相关;类型=”“application/xop+xml”“;开始=”“;边界=”“uuid:d2d519f9-a921-436c-95b0-e3157611a01+id=16”“;开始信息=”“text/xml”“”
objHttpRequest.SetRequestHeader“SOAPAction”,strNameSpace_&“IFileHostService/”和strAction
objHttpRequest.SetRequestHeader“MIME版本”、“1.0”
数据:

——uuid:d2d519f9-a921-436c-95b0-e31576611a01+id=16
内容ID:
内容传输编码:8比特
内容类型:应用程序/xop+xml;字符集=utf-8;type=“text/xml”
12345000012b8e5cb8c-f82e-450d-a80a-29374640d34200.png
--uuid:d2d519f9-a921-436c-95b0-E3157661A01+id=16
内容ID:
内容传输编码:二进制
内容类型:应用程序/八位字节流
[我的字节数组??]
--uuid:d2d519f9-a921-436c-95b0-E3157661A01+id=16
我的问题是:

我用c#接收数据,但接收的字节数组不好

我尝试了很多方法来发送我的字节数组

1-我尝试使用base64,但c#中的字节数组比vb6中的字节数组长。 示例:我在vb6中发送了一个40000字节数组,在c#中得到了50000字节数组

2-我尝试使用字符串unicode,但数组太短。 示例:我发送StrConv(b(),vbUnicode)并在c#中得到一个8的数组。UBound(b)=40000

我的问题是如何在vb6中发送字节数组以在c#中获得相同的数组


谢谢你的时间。

最后,我找到了一种方法

我用base64发送字节数组,并用c#进行转换

value=Convert.FromBase64String(Encoding.UTF8.GetString(value))

StrConv(b(),vbUnicode)的解决方案不起作用,因为当c#读取我的字符串时,它停止读取字符0

[OperationContract]
[WebInvoke(RequestFormat = WebMessageFormat.Xml, ResponseFormat = WebMessageFormat.Xml, Method = "POST", BodyStyle = WebMessageBodyStyle.WrappedRequest)]
ImageData UploadImage(string clientAppKey, string organizationId, string name, byte[] value);
objHttpRequest.SetRequestHeader "Content-Type", "multipart/related; type=""application/xop+xml"";start=""<http://tempuri.org/0>"";boundary=""uuid:d2d519f9-a921-436c-95b0-e31576611a01+id=16"";start-info=""text/xml"""
objHttpRequest.SetRequestHeader "SOAPAction", strNameSpace_ & "IFileHostService/" & strAction
objHttpRequest.SetRequestHeader "MIME-Version", "1.0"
--uuid:d2d519f9-a921-436c-95b0-e31576611a01+id=16
Content-ID: <http://tempuri.org/0>
Content-Transfer-Encoding: 8bit
Content-Type: application/xop+xml;charset=utf-8;type="text/xml"

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><UploadImage xmlns="http://tempuri.org/"><clientAppKey>12345</clientAppKey><organizationId>000012</organizationId><name>b8e5cb8c-f82e-450d-a80a-29374640d34200.png</name><value><Include xmlns="http://www.w3.org/2004/08/xop/include" href="cid:http://tempuri.org/1/635630514915728569"/></value></UploadImage></soap:Body></soap:Envelope>

--uuid:d2d519f9-a921-436c-95b0-e31576611a01+id=16
Content-ID: <http://tempuri.org/1/635630514915728569>
Content-Transfer-Encoding: binary
Content-Type: application/octet-stream

[My bytes array??]
--uuid:d2d519f9-a921-436c-95b0-e31576611a01+id=16