VBA错误请求标头

时间:2016-11-20 19:48:47

标签: excel vba excel-vba

我收到请求标题的错误。

  

错误:运行时错误' 2147012746(80072f76)':

     

找不到请求的标题

调试它是指:

  

PDFdownloadURL = .getResponseHeader(" Location")

代码:

Dim baseURL As String, searchResultsURL As String, pdfURL As String, PDFdownloadURL As String
Dim httpReq As Object
Dim HTMLdoc As Object
Dim PDFlink As Object
Dim cookie As String
Dim downloadFolder As String, localFile As String
Dim fileNum As Integer, fileBytes() As Byte

'Folder in which the downloaded file will be saved

downloadFolder = ThisWorkbook.Path
If Right(downloadFolder, 1) <> "\" Then downloadFolder = downloadFolder & "\"

baseURL = "http://recorder.maricopa.gov/recdocdata/"
searchResultsURL = baseURL & "GetRecDataDetail.aspx?rec=19930074944&suf=&bdt=1/1/1947&edt=11/18/2016&nm=&doc1=&doc2=&doc3=&doc4=&doc5="

Set httpReq = CreateObject("WinHttp.WinHttpRequest.5.1")

With httpReq

    'Send GET to request search results page

    .Open "GET", searchResultsURL, False
    .setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0"
    .Send
    cookie = .getResponseHeader("Set-Cookie")

    'Put response in HTMLDocument for parsing
    Set HTMLdoc = CreateObject("HTMLfile")
    HTMLdoc.body.innerHTML = .responseText

    'Get PDF URL from pages link
    '< a id="ctl00_ContentPlaceHolder1_lnkPages" title="Click to view unofficial document"
    ' href="unofficialpdfdocs.aspx?rec=19930074944&pg=1&cls=RecorderDocuments&suf=" target="_blank">11< /a>

    Set PDFlink = HTMLdoc.getElementById("ctl00_ContentPlaceHolder1_lnkPages")
    pdfURL = Replace(PDFlink.href, "about:", baseURL)
'Send GET request to the PDF URL with automatic http redirects disabled.  This returns a http 302 status (Found) with the Location header containing the URL of the PDF file

.Open "GET", pdfURL, False
.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0"
.setRequestHeader "Referer", searchResultsURL
.setRequestHeader "Set-Cookie", cookie
.Option(WinHttpRequestOption_EnableRedirects) = False
.Send
PDFdownloadURL = .getResponseHeader("Location")

'Send GET to request the PDF file download

.Open "GET", PDFdownloadURL, False
.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/46.0"
.setRequestHeader "Referer", pdfURL
.Send

'Save response bytes in the local file

If .Status = 200 Then
    localFile = downloadFolder & Mid(PDFdownloadURL, InStrRev(PDFdownloadURL, "/") + 1)
    If Dir(localFile) <> "" Then Kill localFile
    fileBytes = .responseBody
    fileNum = FreeFile
    Open localFile For Binary Access Write As #fileNum
    Put #fileNum, 1, fileBytes
    Close #fileNum
    MsgBox "Downloaded " & localFile
Else
    MsgBox "Download failed " & .statusText
End If

End With
End Sub

Link to Webpage:

非常感谢任何帮助。谢谢!

0 个答案:

没有答案