Member 14216587 Ответов: 2

Извлечение JGP из responsebody с помощью vb6


Привет, я использую удаленный веб-сервис, но не могу извлечь jpg-файл, содержащийся в ResponseBody. Я действительно сохраняю файл, но как я могу удалить заголовки 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", "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

Christian Graus

С какой стати вы используете VB6?

Member 14216587

К сожалению, использование vb6-это единственный вариант, так как приложение уже существует.

2 Ответов

Рейтинг:
2

Member 14216587

Ну, поскольку никто не отвечает, Я двоично открыл возвращенный файл и удалил заголовки. Но мне интересно, есть ли лучший способ извлечь фактическое изображение из ResponseBody...


Рейтинг:
0

Christian Graus

VB6 устарел на 20 лет. Если бы я был вынужден использовать его, я бы написал COM-компоненты на C++ и вызвал их из VB.

Я вижу, вы уже используете COM-объекты. Так что VB6 на самом деле не имеет значения. Если объект, который вы используете, не имеет свойств с вещами, которые вы хотите, вы не можете этого сделать


Member 14216587

Но я все-таки получаю досье. Просто я не могу удалить заголовки

Christian Graus

Объект вам не позволяет? Вот что я сказал

Member 14216587

дело не в том, что он мне не позволяет. Дело в том, что я не знаю, как это сделать. Я думаю, что это лучший способ извлечь jpg. Моя мысль о двоичном открытии responsebody и удалении заголовка сложна и медленна...

Christian Graus

Я говорю, что вы ограничены интерфейсом COM-объекта, так что это не вопрос VB6