programing

VBA에서 HTTP 요청을 시도할 때 "적절한 개체가 없으면 메서드가 유효하지 않습니다" 오류가 발생합니까?

easyjava 2023. 6. 13. 22:56
반응형

VBA에서 HTTP 요청을 시도할 때 "적절한 개체가 없으면 메서드가 유효하지 않습니다" 오류가 발생합니까?

저는 이 예를 따르려고 했습니다: http://libkod.info/officexml-CHP-9-SECT-5.shtml - Archive.org - 기부

하지만 그것은 이 오류를 주었습니다.

임구르

다음 줄에서:

Dim objHTTP As New MSXML2.XMLHTTP

다음 예제를 사용하려고 했습니다.VBA를 사용하여 엑셀에서 서버로 HTTP POST 요청을 전송하려면 어떻게 해야 합니까?

하지만 다음과 같은 오류가 발생했습니다.

임구르

다음 줄에서:

Print objHTTP.Status

그럼 VBA에서 POST REST 통화를 하려면 어떻게 해야 합니까?VBA에서 PUT 다중 파트/폼 데이터 파일 업로드 REST 호출을 하려면 어떻게 해야 합니까?

도구 > 참조

임구르

코드

Sub SendEmail()
    'Dim objHTTP As New MSXML2.XMLHTTP
    'Set objhttp = CreateObject("WinHttp.WinHttpRequest.5.1")
    Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
    URL = "http://localhost:8888/rest/mail/send"
    objHTTP.Open "POST", URL, False
    objHTTP.send ("{""key"":null,""from"":""me@me.com"",""to"":null,""cc"":null,""bcc"":null,""date"":null,""subject"":""My Subject"",""body"":null,""attachments"":null}")
    Print objHTTP.Status
    Print objHTTP.ResponseText
    
End Sub

언급

WinHttpRequest 개체: http://msdn.microsoft.com/en-us/library/windows/desktop/aa384106(v=vs.85).aspx

에 대한 참조를 추가하지 않았습니다.Microsoft XML(임의의 버전)의 경우Dim objHTTP As New MSXML2.XMLHTTPVBA 창의 도구/참조...대화.

또한, 늦은 바인딩을 사용하지 않는 것이 좋습니다(CreateObject...); 조기 바인딩을 사용하는 것이 좋습니다(Dim objHTTP As New MSXML2.XMLHTTP초기 바인딩으로 IntelliSense를 사용하여 구성원을 나열하고 모든 종류의 디자인 타임 검증을 수행할 수 있습니다.

나는 사용해야 했습니다.Debug.print대신에Print즉시 창에서 작동합니다.

Sub SendEmail()
    'Dim objHTTP As New MSXML2.XMLHTTP
    'Set objHTTP = New MSXML2.XMLHTTP60
    'Dim objHTTP As New MSXML2.XMLHTTP60
    Dim objHTTP As New WinHttp.WinHttpRequest
    'Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
    'Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
    URL = "http://localhost:8888/rest/mail/send"
    objHTTP.Open "POST", URL, False
    objHTTP.setRequestHeader "Content-Type", "application/json"
    objHTTP.send ("{""key"":null,""from"":""me@me.com"",""to"":null,""cc"":null,""bcc"":null,""date"":null,""subject"":""My Subject"",""body"":null,""attachments"":null}")
    Debug.Print objHTTP.Status
    Debug.Print objHTTP.ResponseText

End Sub

다음 항목을 확인하십시오.

https://github.com/VBA-tools/VBA-Web

REST를 다루는 수준 높은 도서관입니다.OOP이며 JSON과 함께 작동하지만 다른 형식으로도 작동합니다.

REST 데이터를 읽으려면 OData 이상의 Microsoft Power Query를 고려해야 합니다.데이터를 쓸 수 없습니다.하지만 데이터를 매우 잘 읽을 수 있습니다.

언급URL : https://stackoverflow.com/questions/19553476/getting-method-not-valid-without-suitable-object-error-when-trying-to-make-a-h

반응형