LUA curl запрос с тайм-аутом - PullRequest
0 голосов
/ 25 июня 2018

Я использую LUA-код для отправки json-данных в бэкэнд:

local cURL = require("cURL")
local c, err = cURL.easy{
  url = "http://10.10.10.10",
  post = true,
  httpheader = { "Content-Type: application/json"; },
  postfields = jsonString
}

local ok, err = c:perform()

Все отлично работает, кроме одной вещи. Если я не получаю ответ от сервера, мой сценарий продолжает работать. Мне нужно добавить тайм-аут, и если во время тайм-аута я не получаю ответ, закройте соединение.

1 Ответ

0 голосов
/ 25 июня 2018

Согласно официальной документации easy создает объект Easy, который получает таблицу параметров в качестве параметра:

 c = curl.easy{
   url = 'http://example.com',
   [curl.OPT_VERBOSE] = true,
 }

Теперь я думаю, что таким же образом вы можете передать CURLOPT_TIMEOUT параметр , который устанавливает максимальное время, в течение которого разрешено выполнение запроса. Так в коде:

local c, err = cURL.easy{
  url = "http://10.10.10.10",
  post = true,
  httpheader = { "Content-Type: application/json"; },
  postfields = jsonString,
  [curl.OPT_TIMEOUT] = 60, --Your timeout of choice
}

Опять же, мне раньше не приходилось использовать этот параметр, но я уверен, что он работает так же, как и другие CURLOPT параметры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...