답변:
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
URL = "http://www.somedomain.com"
objHTTP.Open "POST", URL, False
objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
objHTTP.send("")
또는 HTTP 요청을보다 강력하게 제어하기 위해 WinHttp.WinHttpRequest.5.1
대신 사용할 수 있습니다 MSXML2.ServerXMLHTTP
.
objHTTP.responseText
.
ByRef
여부. 그렇기 때문에 기본 멤버가없는 유형의 객체 변수와 함께 사용하면 런타임 오류가 발생합니다. 기본 멤버 가 있는 개체에서이를 사용 하면 실제 개체 대신 해당 기본 멤버의 값을 전달합니다.
Mac과 Windows 모두에서 작동하려면 QueryTable을 사용할 수 있습니다.
With ActiveSheet.QueryTables.Add(Connection:="URL;http://carbon.brighterplanet.com/flights.txt", Destination:=Range("A2"))
.PostText = "origin_airport=MSN&destination_airport=ORD"
.RefreshStyle = xlOverwriteCells
.SaveData = True
.Refresh
End With
노트:
자세한 내용은 " Excel의 웹 서비스 사용 "에 대한 전체 요약을 볼 수 있습니다 .
Bill the Lizard 의 답변 외에도 :
대부분의 백엔드는 원시 게시물 데이터를 구문 분석합니다. 예를 들어 PHP에서는 $_POST
게시물 데이터 내의 개별 변수가 저장 되는 배열 이 있습니다. 이 경우 추가 헤더를 사용해야합니다 "Content-type: application/x-www-form-urlencoded"
.
Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
URL = "http://www.somedomain.com"
objHTTP.Open "POST", URL, False
objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
objHTTP.setRequestHeader "Content-type", "application/x-www-form-urlencoded"
objHTTP.send ("var1=value1&var2=value2&var3=value3")
그렇지 않으면 변수에 대한 원시 게시물 데이터를 읽어야합니다 "$HTTP_RAW_POST_DATA"
.
에 ServerXMLHTTP
대한 참조를 추가하여 VBA 프로젝트에서 사용할 수 있습니다 MSXML
.
- VBA 편집기를 엽니 다 (일반적으로 매크로를 편집하여)
- 사용 가능한 참조 목록으로 이동
- Microsoft XML 확인
- 확인을 클릭하십시오.
( VBA 프로젝트 내 MSXML 참조 에서 )
ServerXMLHTTP의 MSDN 문서는 모든 속성과 ServerXMLHTTP의 방법에 대한 자세한 내용이 있습니다.
간단히 말해 기본적으로 다음과 같이 작동합니다.
- 원격 서버에 연결하기위한 open 메소드 호출
- 요청을 보내 려면 send를 호출 하십시오.
- responseXML , responseText , responseStream 또는 responseBody 를 통해 응답을 읽으십시오.
다른 사용자의 응답을 완료하려면 다음을 수행하십시오.
이를 위해 "WinHttp.WinHttpRequest.5.1" 개체를 만들었습니다 .
VBA를 사용하여 Excel에서 일부 데이터로 게시물 요청을 보내십시오.
Dim LoginRequest As Object
Set LoginRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
LoginRequest.Open "POST", "http://...", False
LoginRequest.setRequestHeader "Content-type", "application/x-www-form-urlencoded"
LoginRequest.send ("key1=value1&key2=value2")
VBA를 사용하여 Excel에서 토큰 인증으로 요청을 보냅니다.
Dim TCRequestItem As Object
Set TCRequestItem = CreateObject("WinHttp.WinHttpRequest.5.1")
TCRequestItem.Open "GET", "http://...", False
TCRequestItem.setRequestHeader "Content-Type", "application/xml"
TCRequestItem.setRequestHeader "Accept", "application/xml"
TCRequestItem.setRequestHeader "Authorization", "Bearer " & token
TCRequestItem.send
TCRequestItem Object
있습니다. TCRequestItem.ResponseText
다음 과 같이 읽을 수 있습니다.TCRequestItem.send