Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / отправка и получение JSON / 5 сообщений из 5, страница 1 из 1
08.05.2019, 13:14
    #39811252
-SWAN-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отправка и получение JSON
Здравствуйте, О ГУРУ!)
Подскажите советом, где у меня в коде ошибка?
Пытаюсь отправить JSON-объект.
В ответ получаю сообщение "Ошибка декодирования данных"
Заранее спасибо за помощь!

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
Private Sub JSON_TEST()
Dim strQuery As String, myUrl As String
        
strQuery = "{""version"":""" & "1.0" & """,""dateExecute"":""" & "2019-02-18" & """,""senderCityId"":""" & "270" & _
""",""receiverCityId"":""" & "44" & _
""",""tariffId"":""" & "137" & _
""",""goods"":[{""weight"":""" & "0.3" & _
""",""length"":""" & "10" & """,""width"":""" & "7" & """,""height"":""" & "5" & _
"""},{""weight"":""" & "0.1" & """,""volume"":""" & "0.1" & """}],""services"": [{""id"": 2,""param"": 2000}," & _
        """ & {""id"": 30}]}"

''strQuery = StrConv(strQuery, vbFromUnicode)
'Debug.Print strQuery

myUrl = "http://api.cdek.ru/calculator/calculate_price_by_json_request.php"
''myUrl = "http://api.cdek.ru/calculator/calculate_price_by_json.php"
  
Dim WinHttpReq As Object
'Set WinHttpReq = CreateObject("Microsoft.XMLHTTP")
Set WinHttpReq = CreateObject("MSXML2.XMLHTTP")
WinHttpReq.Open "POST", myUrl, False
'WinHttpReq.Open "GET", myUrl, False
'WinHttpReq.setRequestHeader "Content-Type:", "application/json;charset=utf-8"
WinHttpReq.setRequestHeader "Content-Type:", "application/x-www-form-urlencoded;charset=utf-8"

WinHttpReq.send (strQuery)

'Debug.Print WinHttpReq.responseText

MsgBox "Готово!" & Chr(13) & Chr(13) & _
"Text = " & WinHttpReq.responseText, 64, "Тест"

Set WinHttpReq = Nothing
End Sub
...
Рейтинг: 0 / 0
08.05.2019, 13:39
    #39811269
alecko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отправка и получение JSON
-SWAN-, навскидку """ & { ""id"": 30}]}"
...
Рейтинг: 0 / 0
08.05.2019, 13:53
    #39811283
-SWAN-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отправка и получение JSON
alecko-SWAN-, навскидку """ & { ""id"": 30}]}"

да, ошибочка, спасибо!
Исправил, но ответ все равно тот же

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
Private Sub JSON_TEST()
Dim strQuery As String, myUrl As String
        
strQuery = "{""version"":""" & "1.0" & """,""dateExecute"":""" & "2019-02-18" & """,""senderCityId"":""" & "270" & _
""",""receiverCityId"":""" & "44" & _
""",""tariffId"":""" & "137" & _
""",""goods"":[{""weight"":""" & "0.3" & _
""",""length"":""" & "10" & """,""width"":""" & "7" & """,""height"":""" & "5" & _
"""},{""weight"":""" & "0.1" & """,""volume"":""" & "0.1" & """}],""services"": [{""id"": 2,""param"": 2000},{""id"": 30}]}"

Debug.Print strQuery

myUrl = "http://api.cdek.ru/calculator/calculate_price_by_json_request.php"
''myUrl = "http://api.cdek.ru/calculator/calculate_price_by_json.php"
  
Dim WinHttpReq As Object
'Set WinHttpReq = CreateObject("Microsoft.XMLHTTP")
Set WinHttpReq = CreateObject("MSXML2.XMLHTTP")
WinHttpReq.Open "POST", myUrl, False
'WinHttpReq.Open "GET", myUrl, False
'WinHttpReq.setRequestHeader "Content-Type:", "application/json;charset=utf-8"
WinHttpReq.setRequestHeader "Content-Type:", "application/x-www-form-urlencoded;charset=utf-8"
'WinHttpReq.setRequestHeader "Content-Type:", "text/xml; charset=utf-8"

WinHttpReq.send (EncodeUTF8(strQuery))
'WinHttpReq.send (strQuery)

'Debug.Print WinHttpReq.responseText

MsgBox "Готово!" & Chr(13) & Chr(13) & _
"Text = " & WinHttpReq.responseText, 64, "Тест"

Set WinHttpReq = Nothing
End Sub
...
Рейтинг: 0 / 0
08.05.2019, 14:26
    #39811324
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отправка и получение JSON
-SWAN-Исправил, но ответ все равно тот жеда, теперь JSON валидный
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
{
	"version": "1.0",
	"dateExecute": "2019-02-18",
	"senderCityId": "270",
	"receiverCityId": "44",
	"tariffId": "137",
	"goods": [{
		"weight": "0.3",
		"length": "10",
		"width": "7",
		"height": "5"
	}, {
		"weight": "0.1",
		"volume": "0.1"
	}],
	"services": [{
		"id": 2,
		"param": 2000
	}, {
		"id": 30
	}]
}


Results Valid JSON

Смотри спецификацию JSON-а который принимает сервис
...
Рейтинг: 0 / 0
08.05.2019, 15:12
    #39811373
-SWAN-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отправка и получение JSON
alecko И court,

Спасибо Вам Большое за помощь!
Всё получилось!
Надо было просто ещё добавить аккаунт и пароль (хотя в описании они необязательны) в строку)))
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / отправка и получение JSON / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]