Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
HTTPClient
Успадковує: RefCounted < Object
Клієнт протоколу передачі гіпертексту низького рівня.
Опис
Клієнт протоколу передачі гіпертексту (іноді його називають "Агент користувача"). Використовується для здійснення HTTP-запитів для завантаження веб-контенту, файлів та інших даних або для зв'язку з різними службами, серед інших випадків використання.
Див. вузол HTTPRequest для альтернативи вищого рівня.
Примітка: Цьому клієнту потрібно лише один раз підключитися до хоста (див. connect_to_host()), щоб надіслати кілька запитів. Через це методи, які приймають URL-адреси, зазвичай приймають лише частину після хоста, а не повну URL-адресу, оскільки клієнт вже підключений до хоста. Див. request() для повного прикладу та початку роботи.
HTTPClient слід повторно використовувати між кількома запитами або для підключення до різних хостів, замість створення одного клієнта на запит. Підтримує безпеку транспортного рівня (TLS), включаючи перевірку сертифіката сервера. Коди стану HTTP у діапазоні 2xx вказують на успіх, 3xx – перенаправлення (тобто "спробуйте ще раз, але тут"), 4xx – щось пішло не так із запитом, а 5xx – щось пішло не так на стороні сервера.
Щоб отримати додаткову інформацію про HTTP, див. документацію MDN щодо HTTP (або прочитайте RFC 2616, щоб отримати її безпосередньо з джерела).
Примітка: Під час експорту на Android переконайтеся, що ви ввімкнули дозвіл INTERNET у попередньому налаштуванні експорту Android перед експортом проекту або використанням розгортання одним клацанням миші. В іншому випадку Android блокуватиме будь-який мережевий зв'язок.
Примітка: Рекомендується використовувати транспортне шифрування (TLS) та уникати надсилання конфіденційної інформації (наприклад, облікових даних для входу) у параметрах URL-адреси HTTP GET. Натомість розгляньте можливість використання запитів HTTP POST або заголовків HTTP для такої інформації.
Примітка: Під час виконання HTTP-запитів із проекту, експортованого в Інтернет, пам’ятайте, що віддалений сервер може не дозволяти запити із сторонніх джерел через CORS. Якщо ви розміщуєте відповідний сервер, вам слід змінити його серверну частину, щоб дозволити запити із сторонніх джерел, додавши HTTP-заголовок Access-Control-Allow-Origin: *.
Примітка: Підтримка TLS наразі обмежена TLSv1.2 та TLSv1.3. Спроба підключитися до сервера, який підтримує лише старіші (незахищені) версії TLS, поверне помилку.
Попередження: Відкликання та закріплення сертифіката TLS наразі не підтримуються. Відкликані сертифікати приймаються, якщо вони дійсні. Якщо це вас турбує, ви можете використовувати автоматично керовані сертифікати з коротким терміном дії.
Посібники
Властивості
|
||
StreamPeer |
||
|
Методи
void |
close() |
connect_to_host(host: String, port: int = -1, tls_options: TLSOptions = null) |
|
get_response_body_length() const |
|
get_response_code() const |
|
PackedStringArray |
|
get_status() const |
|
has_response() const |
|
is_response_chunked() const |
|
poll() |
|
String |
query_string_from_dict(fields: Dictionary) |
PackedByteArray |
|
request(method: Method, url: String, headers: PackedStringArray, body: String = "") |
|
request_raw(method: Method, url: String, headers: PackedStringArray, body: PackedByteArray) |
|
void |
set_http_proxy(host: String, port: int) |
void |
set_https_proxy(host: String, port: int) |
Переліки
enum Method: 🔗
Method METHOD_GET = 0
Метод HTTP GET. Метод GET запитує представлення зазначеного ресурсу. Запити з використанням GET мають лише отримувати дані.
Method METHOD_HEAD = 1
Метод HTTP HEAD. Метод HEAD запитує відповідь, ідентичну запиту GET, але без тіла відповіді. Це корисно для запиту метаданих, наприклад заголовків HTTP, або для перевірки існування ресурсу.
Method METHOD_POST = 2
Метод HTTP POST. Метод POST використовується для надсилання сутності на вказаний ресурс, що часто спричиняє зміну стану або побічні ефекти на сервері. Це часто використовується для форм і надсилання даних або завантаження файлів.
Method METHOD_PUT = 3
Метод HTTP PUT. Метод PUT просить замінити всі поточні представлення цільового ресурсу корисним навантаженням запиту. (Ви можете розглядати POST як «створити або оновити», а PUT — як «оновити», хоча багато служб, як правило, не роблять чіткого розмежування або змінюють своє значення).
Method METHOD_DELETE = 4
Метод HTTP DELETE. Метод DELETE запитує видалення зазначеного ресурсу.
Method METHOD_OPTIONS = 5
Метод HTTP OPTIONS. Метод OPTIONS запитує опис параметрів зв’язку для цільового ресурсу. Використовується рідко.
Method METHOD_TRACE = 6
Метод HTTP TRACE. Метод TRACE виконує перевірку зациклення повідомлення на шляху до цільового ресурсу. Повертає весь запит HTTP, отриманий у тілі відповіді. Використовується рідко.
Method METHOD_CONNECT = 7
Метод HTTP CONNECT. Метод CONNECT встановлює тунель до сервера, ідентифікованого цільовим ресурсом. Використовується рідко.
Method METHOD_PATCH = 8
Метод HTTP PATCH. Метод PATCH використовується для застосування часткових змін до ресурсу.
Method METHOD_MAX = 9
Представляє розмір переліку Method.
enum Status: 🔗
Status STATUS_DISCONNECTED = 0
Статус: Відключено від сервера.
Status STATUS_RESOLVING = 1
Статус: наразі ім’я хоста для даної URL-адреси перетворюється на IP.
Status STATUS_CANT_RESOLVE = 2
Статус: збій DNS: не вдається розпізнати ім’я хосту для вказаної URL-адреси.
Status STATUS_CONNECTING = 3
Статус: підключення до сервера.
Status STATUS_CANT_CONNECT = 4
Статус: не вдається підключитися до сервера.
Status STATUS_CONNECTED = 5
Статус: підключення встановлено.
Status STATUS_REQUESTING = 6
Статус: зараз надсилається запит.
Status STATUS_BODY = 7
Статус: тіло HTTP отримано.
Status STATUS_CONNECTION_ERROR = 8
Статус: Помилка підключення HTTP.
Status STATUS_TLS_HANDSHAKE_ERROR = 9
Статус: помилка в рукостисканні TLS.
enum ResponseCode: 🔗
ResponseCode RESPONSE_CONTINUE = 100
Код статусу HTTP 100 Продовжити. Проміжна відповідь, яка вказує на те, що наразі все в порядку, і що клієнт має продовжити запит (або проігнорувати цей статус, якщо він уже завершений).
ResponseCode RESPONSE_SWITCHING_PROTOCOLS = 101
Код статусу HTTP 101 Switching Protocol. Надсилається клієнтом у відповідь на заголовок запиту Upgrade. Вказує на протокол, на який перемикається сервер.
ResponseCode RESPONSE_PROCESSING = 102
Код статусу HTTP 102 Processing (WebDAV). Вказує на те, що сервер отримав і обробляє запит, але відповіді ще немає.
ResponseCode RESPONSE_OK = 200
Код статусу HTTP 200 OK. Запит виконано. Відповідь за умовчанням для успішних запитів. Значення залежить від запиту:
METHOD_GET: ресурс було отримано та передано в тілі повідомлення.
METHOD_HEAD: заголовки об’єктів знаходяться в тілі повідомлення.
METHOD_POST: ресурс, що описує результат дії, передається в тілі повідомлення.
METHOD_TRACE: тіло повідомлення містить повідомлення запиту, отримане сервером.
ResponseCode RESPONSE_CREATED = 201
Код статусу HTTP 201 Створено. Запит виконано успішно, і в результаті цього було створено новий ресурс. Зазвичай це відповідь, що надсилається після запиту PUT.
ResponseCode RESPONSE_ACCEPTED = 202
Код статусу HTTP 202 Accepted. Запит отримано, але ще не виконано. Це не зобов’язує, тобто в HTTP немає способу пізніше надіслати асинхронну відповідь із зазначенням результату обробки запиту. Він призначений для випадків, коли інший процес або сервер обробляє запит, або для пакетної обробки.
ResponseCode RESPONSE_NON_AUTHORITATIVE_INFORMATION = 203
Код статусу HTTP 203 Неавторитетна інформація. Цей код відповіді означає, що повернутий набір метаінформації не є точно встановленим як доступний із вихідного сервера, а зібраний із локальної або сторонньої копії. За винятком цієї умови, відповідь 200 OK має бути перевагою замість цієї відповіді.
ResponseCode RESPONSE_NO_CONTENT = 204
Код статусу HTTP 204 Немає вмісту. Для цього запиту немає вмісту для надсилання, але заголовки можуть бути корисними. Агент користувача може оновити свої кешовані заголовки для цього ресурсу новими.
ResponseCode RESPONSE_RESET_CONTENT = 205
Код статусу HTTP 205 Скинути вміст. Сервер виконав запит і бажає, щоб клієнт скинув «перегляд документа», який спричинив надсилання запиту до початкового стану, отриманого від вихідного сервера.
ResponseCode RESPONSE_PARTIAL_CONTENT = 206
Код статусу HTTP 206 Частковий вміст. Цей код відповіді використовується через заголовок діапазону, надісланий клієнтом для розділення завантаження на кілька потоків.
ResponseCode RESPONSE_MULTI_STATUS = 207
Код статусу HTTP 207 Multi-Status (WebDAV). Відповідь Multi-Status передає інформацію про кілька ресурсів у ситуаціях, коли кілька кодів стану можуть бути доречними.
ResponseCode RESPONSE_ALREADY_REPORTED = 208
Код статусу HTTP 208 уже повідомлено (WebDAV). Використовується всередині елемента відповіді DAV: propstat, щоб уникнути повторного перерахування внутрішніх членів кількох прив’язок до однієї колекції.
ResponseCode RESPONSE_IM_USED = 226
Код статусу HTTP 226 IM Used (WebDAV). Сервер виконав запит GET для ресурсу, і відповідь є представленням результату однієї або кількох маніпуляцій із екземпляром, застосованих до поточного екземпляра.
ResponseCode RESPONSE_MULTIPLE_CHOICES = 300
Код статусу HTTP 300 Multiple Choice. Запит має більше ніж одну можливу відповідь, і немає стандартного способу вибрати одну з відповідей. Користувач-агент або користувач повинен вибрати один із них.
ResponseCode RESPONSE_MOVED_PERMANENTLY = 301
Код статусу HTTP 301 переміщено назавжди. Перенаправлення. Цей код відповіді означає, що URI запитуваного ресурсу було змінено. Новий URI зазвичай включається у відповідь.
ResponseCode RESPONSE_FOUND = 302
Код статусу HTTP 302 знайдено. Тимчасове перенаправлення. Цей код відповіді означає, що URI запитуваного ресурсу тимчасово змінено. У майбутньому можуть бути внесені нові зміни в URI. Таким чином, цей самий URI повинен використовуватися клієнтом у майбутніх запитах.
ResponseCode RESPONSE_SEE_OTHER = 303
Код статусу HTTP 303 See Other. Сервер перенаправляє агент користувача на інший ресурс, як зазначено URI в полі заголовка Location, який призначений для надання непрямої відповіді на вихідний запит.
ResponseCode RESPONSE_NOT_MODIFIED = 304
Код статусу HTTP 304 не змінено. Було отримано умовний запит GET або HEAD, який мав би отримати відповідь 200 OK, якби не той факт, що умова оцінюється як false.
ResponseCode RESPONSE_USE_PROXY = 305
Застаріло: Many clients ignore this response code for security reasons. It is also deprecated by the HTTP standard.
Код статусу HTTP 305 Use Proxy.
ResponseCode RESPONSE_SWITCH_PROXY = 306
Застаріло: Many clients ignore this response code for security reasons. It is also deprecated by the HTTP standard.
Код статусу HTTP 306 Switch Proxy.
ResponseCode RESPONSE_TEMPORARY_REDIRECT = 307
Код статусу HTTP 307 Тимчасове перенаправлення. Цільовий ресурс тимчасово знаходиться під іншим URI, і агент користувача НЕ ПОВИНЕН змінювати метод запиту, якщо він виконує автоматичне перенаправлення до цього URI.
ResponseCode RESPONSE_PERMANENT_REDIRECT = 308
Код статусу HTTP 308 Постійне перенаправлення. Цільовому ресурсу було призначено новий постійний URI, і будь-які майбутні посилання на цей ресурс мають використовувати один із наданих URI.
ResponseCode RESPONSE_BAD_REQUEST = 400
Код статусу HTTP 400 Bad Request. Запит був недійсним. Сервер не може або не хоче обробити запит через щось, що сприймається як помилка клієнта (наприклад, неправильний синтаксис запиту, неприпустимий кадр повідомлення запиту, недійсний вміст запиту або оманлива маршрутизація запиту).
ResponseCode RESPONSE_UNAUTHORIZED = 401
Код статусу HTTP 401 Неавторизовано. Потрібні облікові дані. Запит не застосовано, оскільки в ньому відсутні дійсні облікові дані автентифікації для цільового ресурсу.
ResponseCode RESPONSE_PAYMENT_REQUIRED = 402
Код статусу HTTP 402 Payment Required. Цей код відповіді зарезервовано для використання в майбутньому. Початковою метою створення цього коду було використання його для цифрових платіжних систем, однак наразі він не використовується.
ResponseCode RESPONSE_FORBIDDEN = 403
Код статусу HTTP 403 Forbidden. Клієнт не має прав доступу до вмісту, тобто він неавторизований, тому сервер відмовляється надати належну відповідь. На відміну від 401, особа клієнта відома серверу.
ResponseCode RESPONSE_NOT_FOUND = 404
Код статусу HTTP 404 не знайдено. Сервер не може знайти запитуваний ресурс. Або URL-адресу не розпізнано, або кінцева точка дійсна, але сам ресурс не існує. Також може надсилатися замість 403, щоб приховати існування ресурсу, якщо клієнт не авторизований.
ResponseCode RESPONSE_METHOD_NOT_ALLOWED = 405
Код статусу HTTP 405 Method Not Allowed. Метод HTTP запиту відомий серверу, але його вимкнено та не може використовуватися. Наприклад, API може заборонити DELETE-ing ресурсу. Два обов’язкових методи, GET і HEAD, ніколи не можна вимикати та не повинні повертати цей код помилки.
ResponseCode RESPONSE_NOT_ACCEPTABLE = 406
Код статусу HTTP 406 неприйнятно. Цільовий ресурс не має поточного представлення, яке було б прийнятним для агента користувача відповідно до полів заголовка проактивного узгодження, отриманих у запиті. Використовується при обговоренні змісту.
ResponseCode RESPONSE_PROXY_AUTHENTICATION_REQUIRED = 407
Код статусу HTTP 407 Потрібна автентифікація проксі. Подібно до 401 Unauthorized, але воно вказує на те, що клієнту потрібно автентифікуватися, щоб використовувати проксі.
ResponseCode RESPONSE_REQUEST_TIMEOUT = 408
Код статусу HTTP 408 Час очікування запиту. Сервер не отримав повне повідомлення запиту протягом часу, який він був готовий чекати.
ResponseCode RESPONSE_CONFLICT = 409
Код статусу HTTP 409 Конфлікт. Запит не вдалося виконати через конфлікт із поточним станом цільового ресурсу. Цей код використовується в ситуаціях, коли користувач може вирішити конфлікт і повторно надіслати запит.
ResponseCode RESPONSE_GONE = 410
Код статусу HTTP 410 Gone. Цільовий ресурс більше недоступний на початковому сервері, і ця умова, ймовірно, є постійною.
ResponseCode RESPONSE_LENGTH_REQUIRED = 411
Код статусу HTTP 411 Необхідна довжина. Сервер відмовляється прийняти запит без визначеного заголовка Content-Length.
ResponseCode RESPONSE_PRECONDITION_FAILED = 412
Код статусу HTTP 412 Попередня умова не виконана. Одна або кілька умов, наведених у полях заголовка запиту, оцінюються як false під час тестування на сервері.
ResponseCode RESPONSE_REQUEST_ENTITY_TOO_LARGE = 413
Код статусу HTTP 413 Entity Too Large. Сервер відмовляється обробити запит, оскільки корисне навантаження запиту більше, ніж сервер хоче або може обробити.
ResponseCode RESPONSE_REQUEST_URI_TOO_LONG = 414
Код статусу HTTP 414 Request-URI Too Long. Сервер відмовляється обслуговувати запит, оскільки ціль запиту довша, ніж сервер готовий інтерпретувати.
ResponseCode RESPONSE_UNSUPPORTED_MEDIA_TYPE = 415
Код статусу HTTP 415 Непідтримуваний тип носія. Початковий сервер відмовляється обслуговувати запит, оскільки корисне навантаження має формат, який не підтримується цим методом на цільовому ресурсі.
ResponseCode RESPONSE_REQUESTED_RANGE_NOT_SATISFIABLE = 416
Код статусу HTTP 416 Запитуваний діапазон не задовольняється. Жоден із діапазонів у полі заголовка "Діапазон" запиту не перекриває поточний обсяг вибраного ресурсу, або запитуваний набір діапазонів було відхилено через недійсні діапазони або надмірний запит малих діапазонів або діапазонів, що перекриваються.
ResponseCode RESPONSE_EXPECTATION_FAILED = 417
Код статусу HTTP ``417 Expectation Failed ``. Очікування, указане в полі заголовка Expect запиту, не може бути виконано принаймні одним із вхідних серверів.
ResponseCode RESPONSE_IM_A_TEAPOT = 418
Код статусу HTTP 418 Я чайник. Будь-яка спроба заварити каву за допомогою чайника повинна призвести до коду помилки «418 Я чайник». Отримане тіло сутності МОЖЕ бути коротким і товстим.
ResponseCode RESPONSE_MISDIRECTED_REQUEST = 421
Код статусу HTTP 421 Misdirected Request. Запит було спрямовано на сервер, який не може дати відповідь. Це може бути надіслано сервером, який не налаштований на створення відповідей для комбінації схеми та повноважень, які включені в URI запиту.
ResponseCode RESPONSE_UNPROCESSABLE_ENTITY = 422
Код статусу HTTP 422 Unprocessable Entity (WebDAV). Сервер розуміє тип вмісту об’єкта запиту (отже код статусу 415 Unsupported Media Type є неприйнятним), а синтаксис об’єкта запиту є правильним (тому код статусу 400 Bad Request є невідповідним), але не зміг обробити вміст, що міститься інструкції.
ResponseCode RESPONSE_LOCKED = 423
Код статусу HTTP 423 заблоковано (WebDAV). Ресурс джерела або призначення методу заблоковано.
ResponseCode RESPONSE_FAILED_DEPENDENCY = 424
Код статусу HTTP 424 Failed Dependency (WebDAV). Метод не вдалося виконати на ресурсі, оскільки запитана дія залежала від іншої дії, і ця дія не вдалася.
ResponseCode RESPONSE_UPGRADE_REQUIRED = 426
Код статусу HTTP 426 Потрібне оновлення. Сервер відмовляється виконувати запит із використанням поточного протоколу, але може захотіти це зробити після оновлення клієнта до іншого протоколу.
ResponseCode RESPONSE_PRECONDITION_REQUIRED = 428
Код статусу HTTP 428 Необхідна передумова. Початковий сервер вимагає, щоб запит був умовним.
ResponseCode RESPONSE_TOO_MANY_REQUESTS = 429
Код статусу HTTP 429 Забагато запитів. Користувач надіслав занадто багато запитів за певний проміжок часу (див. «Обмеження швидкості»). Відступіть і збільште час між запитами або повторіть спробу пізніше.
ResponseCode RESPONSE_REQUEST_HEADER_FIELDS_TOO_LARGE = 431
Код статусу HTTP 431 Завеликі поля заголовка запиту. Сервер не бажає обробити запит, оскільки його поля заголовка завеликі. Запит МОЖЕ бути повторно поданий після зменшення розміру полів заголовка запиту.
Код статусу HTTP 451 Відповідь недоступна з юридичних причин. Сервер відмовляє в доступі до ресурсу внаслідок законної вимоги.
ResponseCode RESPONSE_INTERNAL_SERVER_ERROR = 500
Код статусу HTTP 500 Внутрішня помилка сервера. Сервер зіткнувся з неочікуваною умовою, яка завадила йому виконати запит.
ResponseCode RESPONSE_NOT_IMPLEMENTED = 501
Код статусу HTTP 501 не реалізовано. Сервер не підтримує функції, необхідні для виконання запиту.
ResponseCode RESPONSE_BAD_GATEWAY = 502
Код статусу HTTP 502 Bad Gateway. Сервер, діючи як шлюз або проксі, отримав недійсну відповідь від вхідного сервера, до якого він мав доступ під час спроби виконати запит. Зазвичай повертається балансувальниками навантаження або проксі-серверами.
Код статусу HTTP 503 Служба недоступна. Сервер наразі не може обробити запит через тимчасове перевантаження або заплановане технічне обслуговування, яке, ймовірно, буде полегшено після деякої затримки. Повторіть спробу пізніше.
ResponseCode RESPONSE_GATEWAY_TIMEOUT = 504
Код статусу HTTP 504 Час очікування шлюзу. Сервер, діючи як шлюз або проксі, не отримав своєчасної відповіді від вищестоящого сервера, до якого йому потрібно було отримати доступ, щоб виконати запит. Зазвичай повертається балансувальниками навантаження або проксі-серверами.
ResponseCode RESPONSE_HTTP_VERSION_NOT_SUPPORTED = 505
Код статусу HTTP 505 Версія HTTP не підтримується. Сервер не підтримує або відмовляється підтримувати основну версію HTTP, яка використовувалася в повідомленні запиту.
ResponseCode RESPONSE_VARIANT_ALSO_NEGOTIATES = 506
Код статусу HTTP 506 Variant also Negotiates. На сервері виникла внутрішня помилка конфігурації: вибраний варіант ресурсу налаштовано для участі в узгодженні прозорого вмісту, тому він не є належною кінцевою точкою в процесі узгодження.
ResponseCode RESPONSE_INSUFFICIENT_STORAGE = 507
Код статусу HTTP 507 Insufficient Storage. Метод не вдалося виконати на ресурсі, оскільки сервер не може зберегти представлення, необхідне для успішного виконання запиту.
ResponseCode RESPONSE_LOOP_DETECTED = 508
Код статусу HTTP 508 Виявлено цикл. Сервер перервав операцію, оскільки виявив нескінченний цикл під час обробки запиту з «Глибина: нескінченність». Цей статус означає, що вся операція не виконана.
ResponseCode RESPONSE_NOT_EXTENDED = 510
Код статусу HTTP 510 Not Extended. У запиті не дотримано політику доступу до ресурсу. Сервер повинен надіслати всю інформацію, необхідну клієнту для надсилання розширеного запиту.
ResponseCode RESPONSE_NETWORK_AUTH_REQUIRED = 511
Код статусу HTTP 511 Потрібна автентифікація мережі. Клієнт повинен пройти автентифікацію, щоб отримати доступ до мережі.
Описи властивостей
bool blocking_mode_enabled = false 🔗
Якщо true, виконання буде заблоковано, доки всі дані не будуть прочитані з відповіді.
StreamPeer connection 🔗
void set_connection(value: StreamPeer)
StreamPeer get_connection()
Підключення для цього клієнта.
Розмір використовуваного буфера та максимальна кількість байтів для читання за ітерацію. Перегляньте read_response_body_chunk().
Описи методів
void close() 🔗
Закриває поточне підключення, дозволяючи повторне використання цього HTTPClient.
Error connect_to_host(host: String, port: int = -1, tls_options: TLSOptions = null) 🔗
Підключається до хосту. Це потрібно зробити перед надсиланням запитів.
Якщо port не вказано (або використовується -1), він автоматично встановлюється на 80 для HTTP та 443 для HTTPS. Ви можете передати додатковий параметр tls_options, щоб налаштувати довірені центри сертифікації або загальну перевірку імен під час використання HTTPS. Перегляньте TLSOptions.client() і TLSOptions.client_unsafe().
int get_response_body_length() const 🔗
Повертає довжину тіла відповіді.
Примітка. Деякі веб-сервери можуть не надсилати довжину тіла. У цьому випадку поверненим значенням буде -1. Якщо використовується кодування передачі фрагментів, довжина тіла також буде -1.
Примітка. Ця функція завжди повертає -1 на веб-платформі через обмеження браузерів.
int get_response_code() const 🔗
Повертає код статусу HTTP відповіді.
PackedStringArray get_response_headers() 🔗
Повертає заголовки відповідей.
Dictionary get_response_headers_as_dictionary() 🔗
Повертає всі заголовки відповідей як Dictionary. Кожен запис складається з імені заголовка та String, що містить значення, розділені "; ". Оболочка зберігається такою ж, як були отримані заголовки.
{
"content-length": 12,
"Content-Type": "application/json; charset=UTF-8",
}
Повертає константу Status. Потрібно викликати poll(), щоб отримувати оновлення статусу.
Якщо true, цей HTTPClient має доступну відповідь.
bool is_response_chunked() const 🔗
Якщо true, цей HTTPClient має відповідь, яка є фрагментованою.
Це потрібно викликати, щоб обробити будь-який запит. Перевірте результати за допомогою get_status().
String query_string_from_dict(fields: Dictionary) 🔗
Генерує рядок запиту в стилі GET/POST application/x-www-form-urlencoded з наданого словника, наприклад:
var fields = { "username": "user", "password": "pass" }
var query_string = http_client.query_string_from_dict(fields)
# Повертає "username=user&password=pass"
var fields = new Godot.Collections.Dictionary { { "username", "user" }, { "password", "pass" } };
string queryString = httpClient.QueryStringFromDict(fields);
// Повертає "username=user&password=pass"
Крім того, якщо ключ має значення null, додається лише сам ключ, без знака рівності та значення. Якщо значення є масивом, для кожного значення в ньому додається пара з тим самим ключем.
var fields = { "single": 123, "not_valued": null, "multiple": [22, 33, 44] }
var query_string = http_client.query_string_from_dict(fields)
# Повертає "single=123¬_valued&multiple=22&multiple=33&multiple=44"
var fields = new Godot.Collections.Dictionary
{
{ "single", 123 },
{ "notValued", default },
{ "multiple", new Godot.Collections.Array { 22, 33, 44 } },
};
string queryString = httpClient.QueryStringFromDict(fields);
// Повертає "single=123¬_valued&multiple=22&multiple=33&multiple=44"
PackedByteArray read_response_body_chunk() 🔗
Читає один фрагмент із відповіді.
Error request(method: Method, url: String, headers: PackedStringArray, body: String = "") 🔗
Надсилає HTTP-запит до підключеного хоста за допомогою заданого методу param().
Параметр URL зазвичай є лише частиною після host, тому для https://example.com/index.php це /index.php. Під час надсилання запитів до HTTP-проксі-сервера це має бути абсолютна URL-адреса. Для запитів METHOD_OPTIONS також дозволено *. Для запитів METHOD_CONNECT це має бути компонент authority (host:port).
headers – це заголовки HTTP-запиту.
Щоб створити POST-запит із рядками запиту для надсилання на сервер, виконайте такі дії:
var fields = { "username": "user", "password": "pass" }
var query_string = http_client.query_string_from_dict(fields)
var headers = ["Content-Type: application/x-www-form-urlencoded", "Content-Length: " + str(query_string.length()))
var result = http_client.request(http_client.METHOD_POST, "/index.php", headers, query_string)[/gdscript]
- [csharp]
var fields = new Godot.Collections.Dictionary { { "username", "user" }, { "password", "pass" } }; string queryString = new HttpClient().QueryStringFromDict(fields); string[] headers = ["Content-Type: application/x-www-form-urlencoded", $"Content-Length: {queryString.Length}"]; var result = new HttpClient().Request(HttpClient.Method.Post, "index.php", headers, queryString);[/csharp]
[/codeblocks]
[b]Примітка:[/b] Параметр [param body] ігнорується, якщо [param method] має значення [constant HTTPClient.METHOD_GET]. Це тому, що методи GET не можуть містити дані запиту. Як тимчасове рішення, ви можете передавати дані запиту як рядок запиту в URL-адресі. Див. приклад у [method String.uri_encode].
Error request_raw(method: Method, url: String, headers: PackedStringArray, body: PackedByteArray) 🔗
Надсилає необроблений HTTP-запит на підключений хост за допомогою заданого методу method.
Параметр URL зазвичай є лише частиною після імені хоста, тому для https://example.com/index.php це /index.php. Під час надсилання запитів на HTTP-проксі-сервер це має бути абсолютна URL-адреса. Для запитів METHOD_OPTIONS також дозволено *. Для запитів METHOD_CONNECT це має бути компонент авторитету (host:port).
headers – це заголовки HTTP-запиту.
Надсилає дані тіла необробленими, як масив байтів, і жодним чином не кодує їх.
void set_http_proxy(host: String, port: int) 🔗
Встановлює проксі-сервер для запитів HTTP.
Проксі-сервер не встановлено, якщо host порожній або port має значення -1.
void set_https_proxy(host: String, port: int) 🔗
Встановлює проксі-сервер для запитів HTTPS.
Проксі-сервер не встановлено, якщо host порожній або port має значення -1.