VBS POST-запрос с заголовком "ContentType", "application/json"

лис.хвост

VIP
Разработчик
Сообщения
636
Реакции
674
Баллы
318
Добрый день.
Отправляю запрос на адрес "http://kad.arbitr.ru/Kad/SearchInstances" - Картотека арбитражных дел. Цель - получить данные о банкротном деле (поиск осуществляется по ИНН). В firebug все выглядит приблизительно так:

ответ:
{"Result":{"PagesCount":1,"Page":1,"PageSize":25,"TotalCount":1,"Items":[{"CaseId":"3f35d6eb-1c58-43e3-9009-faac79504f94","CaseNumber":"А65-2505/2015","CaseType":"Б","CourtName":"АС Республики Татарстан","Date":"2015-02-06T00:00:00","Plaintiffs":{"Count":2,"Participants":[{"Name":"Федеральная налоговая служба России, г. Казань","Inn":"1654009437","Address":"420111, Россия, г.Казань, РТ, ул. Театральная, д. 13А","OrganizationForm":null,"SubjectCategories":["b94301b2-e2dd-4ff6-a5f9-0d80e374e677"]},{"Name":"Федеральная налоговая служба, г. Москва","Inn":"1644025493","Address":"127381, Россия, г.Москва, РФ, ул. Неглинная,23","OrganizationForm":null,"SubjectCategories":["b94301b2-e2dd-4ff6-a5f9-0d80e374e677"]}]},"Respondents":{"Count":1,"Participants":[{"Name":"ЗАО \"Трикотаж\", г. Казань","Inn":"1654017519","Address":"420111, Россия, г.Казань, РТ, ул. Саид-Галеева, д. 6","OrganizationForm":"5be9aa1d-4207-40a3-bd98-755093757f18","SubjectCategories":["f3dc4121-9ded-4ac4-b329-80bb06eef1c9"]}]},"IsSimpleJustice":false,"Judge":"Минапов А. Р."}]},"Message":"","Success":true,"ServerDate":"2015-09-16T14:47:26","Timings":null}
Код:
Option Explicit
Call main
Sub main
Dim xpl, xmlHTTP, adr, auth, rez
    Set xpl = Report.GetXPL()
    Set xmlHTTP = CreateObject("Microsoft.XMLHTTP")
    adr="http://kad.arbitr.ru/Kad/SearchInstances"
    auth="{""Page"":1,""Count"":25,""CaseType"":""B"",""Courts"":[],""DateFrom"":Null,""DateTo"":Null,""Sides"":[{""Name"":""165401751"",""Type"":-1,""ExactMatch"":False}],""Judges"":[],""CaseNumbers"":[],""WithVKSInstances"":False}"
    auth=URLEncode(auth)
    xmlHTTP.Open "POST", adr, False
    xmlHTTP.setRequestHeader "ContentType", "application/json"
    xmlHTTP.setRequestHeader "X-Requested-With", "XMLHttpRequest"
    xmlHTTP.setRequestHeader "Referer", "http://kad.arbitr.ru/"
    xmlHTTP.setRequestHeader "x-Date-format", "iso"
    xmlHTTP.setRequestHeader "Cache-Control", "no-cache"
    xmlHTTP.setRequestHeader "Connection", "keep-alive"
    xmlHTTP.setRequestHeader "Content-Length", "192"
    xmlHTTP.setRequestHeader "Host", "kad.arbitr.ru"
    xmlHTTP.Send()
    rez = xmlHTTP.responseText
    xpl.GetXParamValue("otvet").SetStr rez
End Sub
Function URLEncode(Data)
Dim oScript, this
    Set oScript = CreateObject("ScriptControl")
    oScript.Language = "JavaScript"
    Set this = oScript.Eval("this")
    URLEncode = this.encodeURIComponent(Data)
End Function
В результате работы этого кода я получаю список всех дел. Может кто подскажит в чем дело
 

Phoenix

Ветеран
Сообщения
2,108
Реакции
1,837
Баллы
503
Приносим извинения,
ведутся профилактические работы.
Сервис временно недоступен.
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,384
Реакции
5,877
Баллы
718
VB.NET:
Option Explicit

'Private Sub Form_Load()
    Call main
'End Sub

Sub main()
Dim xpl, xmlHTTP, adr, auth, rez, PostData
    'Set xpl = Report.GetXPL()
    Set xmlHTTP = CreateObject("Microsoft.XMLHTTP")
    adr = "http://kad.arbitr.ru/Kad/SearchInstances"
   
    PostData = "{""Page"":1,""Count"":25,""Courts"":[],""DateFrom"":null,""DateTo"":null,""Sides"":[],""Judges"":[],""CaseNumbers"":[""А83-4276/2015""],""WithVKSInstances"":false}"
   
    'Data = URLEncode(Data)
    'xmlHTTP.Open "POST", adr, False
   
    xmlHTTP.Open "POST", "http://kad.arbitr.ru/SearchInstances", "false"
    xmlHTTP.SetRequestHeader "x-date-format", "iso"
    xmlHTTP.SetRequestHeader "Content-Type", "application/json"
    xmlHTTP.SetRequestHeader "X-Requested-With", "XMLHttpRequest"
    xmlHTTP.SetRequestHeader "Accept", "application/json, text/javascript, */*"
    xmlHTTP.SetRequestHeader "Referer", "http://kad.arbitr.ru/"
    xmlHTTP.SetRequestHeader "Accept-Language", "ru-RU"
    xmlHTTP.SetRequestHeader "Accept-Encoding", "gzip, deflate"
    xmlHTTP.SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"
    xmlHTTP.SetRequestHeader "Host", "kad.arbitr.ru"
    xmlHTTP.SetRequestHeader "Content-Length", CStr(Len(PostData))
    xmlHTTP.SetRequestHeader "DNT", "1"
    xmlHTTP.SetRequestHeader "Connection", "Keep-Alive"
    xmlHTTP.SetRequestHeader "Cache-Control", "no-cache"
    'xmlHTTP.SetRequestHeader "Cookie", "__utma=228081543.1800042383.1442602458.1442602458.1442602458.1; __utmb=228081543.4.10.1442602458; __utmz=228081543.1442602458.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmt=1; ASP.NET_SessionId=gz1344wldlloqfr3d4zuwbs5; __utmc=228081543; CUID=a1970e42-3f0e-47c2-9c1b-a150d23780ed:yf7Hlu1C1aNFLLi8vtROqg=="
   
    xmlHTTP.Send CStr(PostData)
   
    'Do While xmlHTTP.readystate <> 4: DoEvents: Loop
    Do While xmlHTTP.readystate <> 4: WScript.Sleep 200: Loop

    rez = xmlHTTP.responseText
   
    'xpl.GetXParamValue("otvet").SetStr rez
    MsgBox Len(rez) & " - " & rez
    'Debug.Print rez
    'Unload me
End Sub
Ответ:
{"Result":{"PagesCount":1,"Page":1,"PageSize":25,"TotalCount":1,"Items":[{"CaseId":"a0a3bc11-443b-4eb0-8b05-c9ae30f9b907","CaseNumber":"А83-4276/2015","CaseType":"А","CourtName":"АС Республики Крым","Date":"2015-09-18T00:00:00","Plaintiffs":{"Count":1,"Participants":[{"Name":"Служба финансового надзора Республики Крым","Inn":null,"Address":"295006, бул. Ленина, 5/7, г. Симферополь, Республика Крым, Российская Федерация","OrganizationForm":null,"SubjectCategories":[]}]},"Respondents":{"Count":1,"Participants":[{"Name":"ООО \"ПАРК-ОТЕЛЬ \"МАРАТ\"","Inn":"9103016288","Address":"298662, КРЫМ Респ, ЯЛТА г, ГАСПРА пгт, АЛУПКИНСКОЕ ШОССЕ ул, д.60","OrganizationForm":"5f468142-1394-4b88-88ac-8d79c4ba9600","SubjectCategories":[]}]},"IsSimpleJustice":false,"Judge":"Евдокимова Е. А."}]},"Message":"","Success":true,"ServerDate":"2015-09-18T22:20:49","Timings":null}
И да, твой запрос кривовато построен. Подсмотри через fiddler2 или ишака. F12 -> play (запуск трассировки сети) -> Двойной клик по запросу -> Текст запроса.

Query.jpg


Отдам код за два поцелуйчика - на этом и другом форумах :Biggrin:

Кстати, помощь с парсингом ответа нужна?
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,384
Реакции
5,877
Баллы
718
Подставь в мой скрипт, узнаешь.
 

лис.хвост

VIP
Разработчик
Сообщения
636
Реакции
674
Баллы
318
загадочный какой, разобралась "{""Page"":1,""Count"":25,""Courts"":[],""DateFrom"":null,""DateTo"":null,""Sides"":[{""Name"":""165401751"",""Type"":-1,""ExactMatch"":false}],""Judges"":[],""CaseNumbers"":[],""WithVKSInstances"":false}"
чувствительный к регистру
 
Сверху Снизу