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.










share|improve this question









New contributor




Filipe Brun Machado is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.















  • 1




    Please include your code. URL if possible.
    – QHarr
    Nov 10 at 13:07















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.










share|improve this question









New contributor




Filipe Brun Machado is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.















  • 1




    Please include your code. URL if possible.
    – QHarr
    Nov 10 at 13:07













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.










share|improve this question









New contributor




Filipe Brun Machado is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











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






share|improve this question









New contributor




Filipe Brun Machado is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




Filipe Brun Machado is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited 2 days ago





















New contributor




Filipe Brun Machado is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked Nov 10 at 12:15









Filipe Brun Machado

11




11




New contributor




Filipe Brun Machado is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Filipe Brun Machado is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Filipe Brun Machado is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







  • 1




    Please include your code. URL if possible.
    – QHarr
    Nov 10 at 13:07













  • 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


















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);






Filipe Brun Machado is a new contributor. Be nice, and check out our Code of Conduct.









 

draft saved


draft discarded


















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



































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.









 

draft saved


draft discarded


















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.













 


draft saved


draft discarded














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














































































這個網誌中的熱門文章

How to read a connectionString WITH PROVIDER in .NET Core?

In R, how to develop a multiplot heatmap.2 figure showing key labels successfully

Museum of Modern and Contemporary Art of Trento and Rovereto