POST请求(VBA)中的JSON响应无效
我一直从代码中获取无效的JSON 代码如下所示。我不知道问题在哪里POST请求(VBA)中的JSON响应无效,json,vba,web-scraping,Json,Vba,Web Scraping,我一直从代码中获取无效的JSON 代码如下所示。我不知道问题在哪里 Sub Getcustoms2() Dim JSON As Object Dim ws As Worksheet, results(), i As Long, s As String returnshipvalue = "20L10KX154i0001" MyURL = "firstIndex=0&recordCountPerPage=10&page=
Sub Getcustoms2()
Dim JSON As Object
Dim ws As Worksheet, results(), i As Long, s As String
returnshipvalue = "20L10KX154i0001"
MyURL = "firstIndex=0&recordCountPerPage=10&page=1&pageIndex=1&pageSize=10&pageUnit=10&cargMtNo=" & returnshipvalue
With CreateObject("MSXML2.XMLHTTP")
.Open "POST", "https://unipass.customs.go.kr/csp/myc/bsopspptinfo/cscllgstinfo/ImpCargPrgsInfoMtCtr/retrieveImpCargPrgsInfoDtl.do", False
.setRequestHeader "Accept", "application/json, text/javascript, */*; q=0.01"
.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36"
.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"
.setRequestHeader "Accept-Encoding", "gzip, deflate, br"
.send MyURL
Debug.Print .responseText
End With
End Sub
.responseText只给了我一个无效的JSON
作为参考,原始网站URL为
我正试图搜集一个特定的BL号码的细节。总代码如下所示。(顶部指主BL编号NFPWP023)
事先非常感谢。
我尝试了所有不同类型的请求头,但都不起作用。代码的第一部分生成json响应,其中包含
resultListL
,因此我看不出问题实际在哪里。问题在第二部分。它不生成json响应代码的第一部分生成json响应,其中包含resultlist
,因此我看不出问题实际在哪里。问题在第二部分。它不会产生json响应
Sub Getcustoms2()
Dim JSON As Object
Dim ws As Worksheet, results(), i As Long, s As String
Dim shipvalue As String, custom As String, MyURL As String
Dim BL As String, returnshipvalue As String
Dim LastRow As Long
Dim testarray()
LastRow = Worksheets("Master_BL").Cells(rows.Count, "A").End(xlUp).Row
i = 4
For i = 4 To 4
BL = Cells(i, 1).Value
' Debug.Print BL
With CreateObject("MSXML2.XMLHTTP")
.Open "POST", "https://unipass.customs.go.kr/csp/myc/bsopspptinfo/cscllgstinfo/ImpCargPrgsInfoMtCtr/retrieveImpCargPrgsInfoLst.do", False
.setRequestHeader "Accept", "application/json, text/javascript, */*; q=0.01"
.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36"
.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"
.setRequestHeader "Accept-Encoding", "gzip, deflate, br"
.setRequestHeader "Accept-Language", "ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7"
.send "firstIndex=0&page=1&pageIndex=1&pageSize=10&pageUnit=10&recordCountPerPage=10&qryTp=2&cargMtNo=&mblNo=" & BL & "&hblNo=&blYy=2020"
'Debug.Print .responseText
Set JSON = JsonConverter.ParseJson(.responseText)
End With
If JSON("count") = "0" Then
returnshipvalue = "empty"
Else
returnshipvalue = JSON("resultList")(1)("cargMtNo")
'Debug.Print returnshipvalue
MyURL = "firstIndex=0&recordCountPerPage=10&page=1&pageIndex=1&pageSize=10&pageUnit=10&cargMtNo=" & returnshipvalue
'Debug.Print MyURL
With CreateObject("MSXML2.XMLHTTP")
.Open "POST", "https://unipass.customs.go.kr/csp/myc/bsopspptinfo/cscllgstinfo/ImpCargPrgsInfoMtCtr/retrieveImpCargPrgsInfoDtl.do", False
.setRequestHeader "Accept", "application/json, text/javascript, */*; q=0.01"
.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36"
.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"
.setRequestHeader "Accept-Encoding", "gzip, deflate, br"
' .setRequestHeader "Cookie", "MYC_RCNT_MENU=%3Cli%3E%3Ca%20href%3D%22javascript%3Amyc_f_goRecentMenu('MYC_MNU_00000450')%3B%22%3E%EC%88%98%EC%9E%85%ED%99%94%EB%AC%BC%20%EC%A7%84%ED%96%89%EC%A0%95%EB%B3%B4%3C%2Fa%3E%3C%2Fli%3E; WMONID=DMzwDfgcRNX; MagicLineSession=PhY21XbKet7wH3C0oRfw; JSESSIONID=0069nXlwjdxrmEna0gft9oKhXcSd3_nxlpAQb-Bq7M7s9HGGOIMrE9PNE6B-vT5pv7PfKf7wKR3NhO4rcFzR_EtJG4dYsYiEuStnmqX5ZvBi1HUkhDrR6noY4ki76jba6Vh-:csp31"
' .setRequestHeader "Referer", "https://unipass.customs.go.kr/csp/index.do"
' .setRequestHeader "Accept-Language", "ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7"
.send MyURL
Debug.Print .responseText
Set JSON = JsonConverter.ParseJson(.responseText)
End With
Debug.Print JSON("impStateRsltVo")("prgsStts")
Cells(i, 2).Value = JSON("impStateRsltVo")("prgsStts")
Cells(i, 3).Value = JSON("resultListL")(1)("cargTrcnRelaBsopTpcd")
Cells(i, 4).Value = JSON("resultListL")(1)("prcsDttm")
Cells(i, 5).Value = JSON("resultListL")(2)("cargTrcnRelaBsopTpcd")
Cells(i, 6).Value = JSON("resultListL")(2)("prcsDttm")
Set JSON = Nothing
End If
Next i
End Sub