[Помощь] Отправка POST через http с использованием json - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Sanoxxx, Alowir, Phoenixxx_Czar  
[Помощь] Отправка POST через http с использованием json
laduhaaa Дата: Воскресенье, 17.12.2017, 12:22 | Сообщение # 1
Новичок
Сообщений: 2
Статус: Offline
Делаю скрипт для МО, уже сделал сервер который на POST запрос добавляет данные в базу данных. Но я не умею посылать запросы через AHK. + Мне надо что бы тело запроса состояло из json и выглядело приблизительно вот так:
Код
{
    "name": "Vasya_Petrov",
    "rang": 9
}
Demy Дата: Воскресенье, 17.12.2017, 14:05 | Сообщение # 2
Бывалый
Сообщений: 422
Статус: Offline
Ну, бд юзать прямо через скрипт - грех. Ибо можно открыть код и узнать данные приватные. Как вариант, можно передавать данные скрипту, а вот уже он отправляет их бдшке.
Но если нужно прямо так, то гугли про JSON.ahk . А это вот ссылка на функцию для отправки POST даты ( хотя, помню, что был метод проще, но это первое, что нагуглил )

Добавлено (17.12.2017, 14:05)
---------------------------------------------
Вспомнил. WinHttp. ссылка


AutoReporter / http://cheat-master.ru/forum/150-486717-1
Finder / http://cheat-master.ru/forum/160-497245-1
DLQ Binder / http://cheat-master.ru/forum/150-594163-1

У ТЕБЯ ЕСТЬ ИДЕЯ ДЛЯ ПРОГРАММЫ, НО САМ ТЫ НЕ МОЖЕШЬ НАПИСАТЬ КОД? ПИШИ МНЕ


Сообщение отредактировал Demy - Воскресенье, 17.12.2017, 14:05
[dev]Marvin Дата: Понедельник, 18.12.2017, 00:16 | Сообщение # 3
Новичок
Сообщений: 28
Статус: Offline
К посту выше. Но класс не советую юзать, так как у него есть волшебное свойство - выдавать неизвестные ошибки, такое случается с некоторыми версиями винды.
Код для примера:
Код

json := http_request({"request":{"method":"messages.get","data":{"ts":0,"warns":true,"token":user.token}}})
MsgBox, % json["response"]["messages"][1]["message_id"]

Код функции:
Код

http_request(params) {
    ComObjError(false)
    http := ComObjCreate("WinHttp.WinHttpRequest.5.1")
    http.Open("POST", "http://domain.ltd", true)
    http.SetRequestHeader("User-Agent", "not-bot, not-hacker")
    http.SetRequestHeader("Content-Type", "application/json")
    http.SetRequestHeader("Accept-Encoding", "gzip, deflate")
    http.Send(BuildJson(params))
    http.WaitForResponse()
    return ParseJson(http.ResponseText)
}


Сообщение отредактировал [dev]Marvin - Понедельник, 18.12.2017, 00:31
laduhaaa Дата: Четверг, 21.12.2017, 16:16 | Сообщение # 4
Новичок
Сообщений: 2
Статус: Offline
[dev]Marvin, Call to nonexistent function.

Добавлено (21.12.2017, 16:16)
---------------------------------------------
Demy, скачал класс, паршу обычный объект через JSON.dump(), проверяю строка выдаеться такой какой она должна быть. Но сервер не хочет вносить в базу данных, и выдает мол неожиданный символ #
на позиции 0.

#Include Json.ahk

Код
URL := "http://localhost:8000/createPlayer"
HttpObj := ComObjCreate("WinHttp.WinHttpRequest.5.1")

HttpObj.Open("POST", URL, 0)
HttpObj.SetRequestHeader("Content-Type", "application/json")

json_str := {name: "Vasya_ Petrov"}

str_for_test:= JSON.Dump(json_str)

Body := json_str
HttpObj.Send(JSON.Dump(json_str))

MsgBox, %str_for_test%
Result := HttpObj.ResponseText
Status := HttpObj.Status
msgbox % "status: " status "`n`nresult: " result

Проблема не в сервере, я проверял через postman, данные нормально вносяться


Сообщение отредактировал laduhaaa - Четверг, 21.12.2017, 16:20
[dev]Marvin Дата: Четверг, 21.12.2017, 23:01 | Сообщение # 5
Новичок
Сообщений: 28
Статус: Offline
laduhaaa, открываешь JSON.ahk, который я скинул
Ищешь функции, которые там есть, их 3-4, тебе нужны функции, связанные с ParseJson/JsonParse, BuildJson/JsonBuild.
И заменяешь их.
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума