Http request VBA response
up vote
0
down vote
favorite
Making my first steps on Http within VBA.
Already managed to get cookie value in order to make a request. The problem i'm having is that the file i want to download is not in the first response. When I analyse using HTTP Header Live, the browse receives several responses and only the last one is the file, a pdf that is generated after a query sent by the user. The only thing I'm getting is the first response that i'm displayng with a MsgBox. Can someone Help me solving this problem. Made some searches through the web but haven't found yet, a solution.
Thanks
The code am using is
Dim WinHttpReq As Object
Set WinHttpReq = CreateObject("WinHTTP.WinHTTPrequest.5.1")
With WinHttpReq
.Open "POST", myURL, False ', "username", "password"
.send
x = .getResponseHeader("Set-Cookie")
i = InStr(x, ";")
x = Left(x, i - 1)
MsgBox x
End With
With WinHttpReq
.Open "GET", myURL, False
.Option(WinHttpRequestOption_EnableRedirects) = True
.SetRequestHeader "Content-Type", "application/pdf"
.SetRequestHeader "Accept-Encoding", "gzip, deflate, br"
.SetRequestHeader "Cookie", x
.SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0"
.send
End With
MsgBox (WinHttpReq.getAllResponseHeaders())
If WinHttpReq.Status = 200 Then
Set oStream = CreateObject("ADODB.Stream")
With oStream
.Type = 1
.Open
.Write WinHttpReq.responseBody
.SaveToFile "C:UsersxxxDesktopfile.pdf", 2
.Close
End With
End If
Set WinHttpReq = Nothing
Set oStream = Nothing
End Sub
Analysing with Firefox, when I enter the URL, i receive two responses with 200 OK. I wonder how can i get the second response? The site uses a javascript that interprets the query i send and returns a pdf file. The file name changes according to the user and the query.
vba http
New contributor
add a comment |
up vote
0
down vote
favorite
Making my first steps on Http within VBA.
Already managed to get cookie value in order to make a request. The problem i'm having is that the file i want to download is not in the first response. When I analyse using HTTP Header Live, the browse receives several responses and only the last one is the file, a pdf that is generated after a query sent by the user. The only thing I'm getting is the first response that i'm displayng with a MsgBox. Can someone Help me solving this problem. Made some searches through the web but haven't found yet, a solution.
Thanks
The code am using is
Dim WinHttpReq As Object
Set WinHttpReq = CreateObject("WinHTTP.WinHTTPrequest.5.1")
With WinHttpReq
.Open "POST", myURL, False ', "username", "password"
.send
x = .getResponseHeader("Set-Cookie")
i = InStr(x, ";")
x = Left(x, i - 1)
MsgBox x
End With
With WinHttpReq
.Open "GET", myURL, False
.Option(WinHttpRequestOption_EnableRedirects) = True
.SetRequestHeader "Content-Type", "application/pdf"
.SetRequestHeader "Accept-Encoding", "gzip, deflate, br"
.SetRequestHeader "Cookie", x
.SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0"
.send
End With
MsgBox (WinHttpReq.getAllResponseHeaders())
If WinHttpReq.Status = 200 Then
Set oStream = CreateObject("ADODB.Stream")
With oStream
.Type = 1
.Open
.Write WinHttpReq.responseBody
.SaveToFile "C:UsersxxxDesktopfile.pdf", 2
.Close
End With
End If
Set WinHttpReq = Nothing
Set oStream = Nothing
End Sub
Analysing with Firefox, when I enter the URL, i receive two responses with 200 OK. I wonder how can i get the second response? The site uses a javascript that interprets the query i send and returns a pdf file. The file name changes according to the user and the query.
vba http
New contributor
1
Please include your code. URL if possible.
– QHarr
Nov 10 at 13:07
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
Making my first steps on Http within VBA.
Already managed to get cookie value in order to make a request. The problem i'm having is that the file i want to download is not in the first response. When I analyse using HTTP Header Live, the browse receives several responses and only the last one is the file, a pdf that is generated after a query sent by the user. The only thing I'm getting is the first response that i'm displayng with a MsgBox. Can someone Help me solving this problem. Made some searches through the web but haven't found yet, a solution.
Thanks
The code am using is
Dim WinHttpReq As Object
Set WinHttpReq = CreateObject("WinHTTP.WinHTTPrequest.5.1")
With WinHttpReq
.Open "POST", myURL, False ', "username", "password"
.send
x = .getResponseHeader("Set-Cookie")
i = InStr(x, ";")
x = Left(x, i - 1)
MsgBox x
End With
With WinHttpReq
.Open "GET", myURL, False
.Option(WinHttpRequestOption_EnableRedirects) = True
.SetRequestHeader "Content-Type", "application/pdf"
.SetRequestHeader "Accept-Encoding", "gzip, deflate, br"
.SetRequestHeader "Cookie", x
.SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0"
.send
End With
MsgBox (WinHttpReq.getAllResponseHeaders())
If WinHttpReq.Status = 200 Then
Set oStream = CreateObject("ADODB.Stream")
With oStream
.Type = 1
.Open
.Write WinHttpReq.responseBody
.SaveToFile "C:UsersxxxDesktopfile.pdf", 2
.Close
End With
End If
Set WinHttpReq = Nothing
Set oStream = Nothing
End Sub
Analysing with Firefox, when I enter the URL, i receive two responses with 200 OK. I wonder how can i get the second response? The site uses a javascript that interprets the query i send and returns a pdf file. The file name changes according to the user and the query.
vba http
New contributor
Making my first steps on Http within VBA.
Already managed to get cookie value in order to make a request. The problem i'm having is that the file i want to download is not in the first response. When I analyse using HTTP Header Live, the browse receives several responses and only the last one is the file, a pdf that is generated after a query sent by the user. The only thing I'm getting is the first response that i'm displayng with a MsgBox. Can someone Help me solving this problem. Made some searches through the web but haven't found yet, a solution.
Thanks
The code am using is
Dim WinHttpReq As Object
Set WinHttpReq = CreateObject("WinHTTP.WinHTTPrequest.5.1")
With WinHttpReq
.Open "POST", myURL, False ', "username", "password"
.send
x = .getResponseHeader("Set-Cookie")
i = InStr(x, ";")
x = Left(x, i - 1)
MsgBox x
End With
With WinHttpReq
.Open "GET", myURL, False
.Option(WinHttpRequestOption_EnableRedirects) = True
.SetRequestHeader "Content-Type", "application/pdf"
.SetRequestHeader "Accept-Encoding", "gzip, deflate, br"
.SetRequestHeader "Cookie", x
.SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0"
.send
End With
MsgBox (WinHttpReq.getAllResponseHeaders())
If WinHttpReq.Status = 200 Then
Set oStream = CreateObject("ADODB.Stream")
With oStream
.Type = 1
.Open
.Write WinHttpReq.responseBody
.SaveToFile "C:UsersxxxDesktopfile.pdf", 2
.Close
End With
End If
Set WinHttpReq = Nothing
Set oStream = Nothing
End Sub
Analysing with Firefox, when I enter the URL, i receive two responses with 200 OK. I wonder how can i get the second response? The site uses a javascript that interprets the query i send and returns a pdf file. The file name changes according to the user and the query.
vba http
vba http
New contributor
New contributor
edited 2 days ago
New contributor
asked Nov 10 at 12:15
Filipe Brun Machado
11
11
New contributor
New contributor
1
Please include your code. URL if possible.
– QHarr
Nov 10 at 13:07
add a comment |
1
Please include your code. URL if possible.
– QHarr
Nov 10 at 13:07
1
1
Please include your code. URL if possible.
– QHarr
Nov 10 at 13:07
Please include your code. URL if possible.
– QHarr
Nov 10 at 13:07
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Filipe Brun Machado is a new contributor. Be nice, and check out our Code of Conduct.
Filipe Brun Machado is a new contributor. Be nice, and check out our Code of Conduct.
Filipe Brun Machado is a new contributor. Be nice, and check out our Code of Conduct.
Filipe Brun Machado is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53238855%2fhttp-request-vba-response%23new-answer', 'question_page');
);
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
1
Please include your code. URL if possible.
– QHarr
Nov 10 at 13:07