Vb6 从MIME响应中提取JPG?
我正在使用远程Web服务,但无法提取Vb6 从MIME响应中提取JPG?,vb6,jpeg,mime,msxml,Vb6,Jpeg,Mime,Msxml,我正在使用远程Web服务,但无法提取ResponseBody中包含的jpg文件。事实上,我确实保存了一个文件,但如何删除Mime头等,以便查看图像 这是我的密码: Sub GetImg(ByVal strUrl As String, ByVal XmlBody As String) Dim objDom As Object Dim objXmlHttp As Object Dim strRet As String Dim aRes() As Byte, fn As
ResponseBody
中包含的jpg文件。事实上,我确实保存了一个文件,但如何删除Mime头等,以便查看图像
这是我的密码:
Sub GetImg(ByVal strUrl As String, ByVal XmlBody As String)
Dim objDom As Object
Dim objXmlHttp As Object
Dim strRet As String
Dim aRes() As Byte, fn As Integer
' Create objects to DOMDocument and XMLHTTP
Set objDom = CreateObject("MSXML2.DOMDocument")
Set objXmlHttp = CreateObject("MSXML2.XMLHTTP")
' Load XML
objDom.async = False
objDom.loadXML XmlBody
' Open the webservice
objXmlHttp.Open "POST", strUrl, False
' Create headings
objXmlHttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
objXmlHttp.setRequestHeader "Accept", "image/jpeg"
objXmlHttp.setRequestHeader "Content-Length", Len(XmlBody)
' Send XML command
objXmlHttp.send objDom.xml
' Get all response text from webservice
strRet = objXmlHttp.responseText
' Get image
aRes = objXmlHttp.responseBody
fn = FreeFile
Open "a.jpg" For Binary As fn
Put fn, , aRes
Close fn
' Close objects
Set objXmlHttp = Nothing
Set objDom = Nothing
End Sub
我得到下面的回答。我觉得内容类型是应用程序/二进制,也许这就是为什么我用这种方式获取图像
--MIME_boundaryB0R9532143182121
Content-Type: text/xml
Content-ID: <http://www.borland.com/rootpart.xml>
Content-Location: http://www.borland.com/rootpart.xml
Content-Length: 528
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<NS1:Get_TestImageResponse xmlns:NS1="urn:LabLinkIntf-ILabLink">
<return href="cid:1D9766A6-B088-4408-B023-283F7AB6EEB1"/>
</NS1:Get_TestImageResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
--MIME_boundaryB0R9532143182121
Content-ID: <1D9766A6-B088-4408-B023-283F7AB6EEB1>
Content-Length: 1035666
Content-Type: application/binary
BM??
——MIME_边界B0R9532143182121
内容类型:text/xml
内容ID:
内容位置:http://www.borland.com/rootpart.xml
内容长度:528
--MIME_边界B0R9532143182121
内容ID:
内容长度:1035666
内容类型:应用程序/二进制
BM??
然而,通过使用在线soap客户端,我得到了附带的答案(如果我点击红色名称,我就得到了jpg!!!)
他们是怎么做的?而且,请不要开始怀疑我为什么要使用vb6。自2001年以来,该应用程序已安装到500多个客户端。我只需要添加这个小的子例程。响应主体中标题的内容是什么?为什么您的POST图像/jpeg的内容类型是什么?您是否正在提交图像?该标头指定请求正文的格式。如果您向服务器请求图像数据,则应改为在请求中设置Accept标头。您通常不会在响应中接收MIME标头…您需要了解此web服务提供的数据格式,如果需要以jpeg格式返回的二进制图像,则可能需要
Accept:image/jpeg
标题。搜索content-type vs-accept
以获得解释。而且,请不要开始怀疑我为什么使用vb6。自2001年以来,该应用程序已安装到500多个客户端。我只需要添加这个小的子例程。响应主体中标题的内容是什么?为什么您的POST图像/jpeg的内容类型是什么?您是否正在提交图像?该标头指定请求正文的格式。如果您向服务器请求图像数据,则应改为在请求中设置Accept标头。您通常不会在响应中接收MIME标头…您需要了解此web服务提供的数据格式,如果需要以jpeg格式返回的二进制图像,则可能需要Accept:image/jpeg
标题。搜索内容类型vs接受以获取解释。