Excel vba의 웹에 JSON 게시
VBA와 함께 JSON을 게시하고 싶습니다.
Dim sURL As String, sHTML As String, sAllPosts As String
Dim oHttp As Object
Dim blWSExists As Boolean
Set oHttp = CreateObject("MSXML2.XMLHTTP")
sURL = "some webste.com"
oHttp.Open "POST", sURL, False
oHttp.setRequestHeader "Content-type", "application/json"
oHttp.setRequestHeader "Accept", "application/json"
oHttp.Send (mType = OPEN_SYSTEM_TRADE & systemOwnerId = 10)
sHTML = oHttp.ResponseText
Worksheets("Open1").Range("A1").Value = sHTML
웹 사이트로 전송할 미리 정의된 형식은 json에서 다음과 같이 설명합니다.{"mType":"OPEN_SYSTEM_TRADE","systemOwnerId":10,"systemId":16, etc}
나의oHttp.Send
행이 잘못되었을 것입니다. 인수를 추가하자마자 컴파일러 오류가 발생합니다. 지금까지 웹에서 찾을 수 있는 것 중 가장 좋기 때문에 이 (작동하지 않는) 코드를 게시합니다(다른 모든 것들은 제가 이해하지 못하는 다른 것들에 저를 고정시킵니다...
저는 또한 json 코드를 셀에 넣고, 셀을 문자열에 넣고, 다음과 같이 문자열을 보내려고 했습니다.oHttp.Send
(문자열), 이는 결과적으로 발생합니다.Error 406 Not Acceptable
웹사이트에서 회신합니다.
JSON은 포맷 방식에 매우 민감할 수 있기 때문에 발송 전에 모든 견적이 제대로 나오는지 확인하고 싶습니다.나는 분할하는 것을 추천합니다.Body
전송하기 전에 http://jsonformatter.curiousconcept.com/ 으로 값을 디버깅합니다.
Dim Body As String
Body = "{""mType"":""OPEN_SYSTEM_TRADE"",""systemOwnerId"":10}"
' Set breakpoint here, get the Body value, and check with JSON validator
oHttp.Send Body
Salesforce의 REST API로 작업할 때 비슷한 문제가 많이 발생하여 제 작업을 라이브러리에 통합했습니다. https://github.com/VBA-tools/VBA-Web .이 라이브러리를 사용하면 다음과 같은 예를 볼 수 있습니다.
Dim Body As New Dictionary
Body.Add "mType", "OPEN_SYSTEM_TRADE"
Body.Add "systemOwnerId", 10
Dim Client As New WebClient
Dim Response As WebResponse
Set Response = Client.PostJson("somewebsite.com", Body)
Worksheets("Open1").Range("A1").Value = Response.Content
언급URL : https://stackoverflow.com/questions/21021540/post-json-to-web-in-excel-vba
'programing' 카테고리의 다른 글
C 전처리기 "문자열화"의 반대말 (0) | 2023.06.13 |
---|---|
파이어베이스의 앱 토큰이 변경되는 기간과 관리 방법은 무엇입니까? (0) | 2023.06.13 |
Extender 공급자가 Extender를 반환하지 못했습니다. (0) | 2023.06.13 |
axios 오류 유형 스크립트, 주석은 '임의' 또는 '알 수 없음'이어야 합니다. (0) | 2023.06.13 |
VB.NET에서 예외를 발생시키는 방법 (0) | 2023.06.13 |