Коллеги, Спасибо за оперативный отклик!
Дед Пахом писал(а): ↑01 Ноябрь 2022, 16:21
...
"http response code said error" это ошибка запроса CURLE_HTTP_RETURNED_ERROR (22), то есть до сервера запрос не доходит, и GetResponseCODE видимо возвращает какой-то мусор, потому что в этом случае код возврата не имеет смысла - никакого кода сервер не прислал.
Логично ли в начале проанализировать содержимое curl.StrError(SELF.res) и, если его значение не равно '
http response code said error'
Код: Выделить всё
If CLIP(respBuffer) = ''
SELF.Err_Descr = CLIP(SELF.curl.StrError(SELF.res))
if SELF.Err_Descr <> 'HTTP response code said Error'
SELF.Err_Code = CLIP(SELF.curl.GetResponseCODE())
end
Else
! что-то делаем c json, например:
ConvertCharSet(respBuffer, 65001, 1251)
json.DoNotUnEscape = 1
json.FromJSon(respBuffer, JSResp)
json.FromJSon(JSResp.data.orderList, OrdersQ) ! получить в очередь
...
End
то толко тогда уже использовать SELF.Err_Code = CLIP(
SELF.curl.GetResponseCODE()) ?
Как быть в случае когда на GET-запрос respBuffer = SELF.GetREST('orders/') пришел ответ <> '', но не в виде корректного json, а "мусора".
Возможно ли, как-то это понять, что ответ не "мусорный" (который, м.б. и вызвает в моей ситуации аварийный "вылет" программы
), а корректный json, правильным ли будет, в таком случае, анализ очереди (у меня это
OrdersQ) по принципу:
if RECORDS(OrdersQ), то считаем что в ответе
не "мусор"
В тех примерах, которые со мной поделились форумчане, размерность переменной
respBuffer в которую получем ответ запроса была STRING(
655360)
я увеличил ее в три раза до STRING(
1966080), можно ли было такое делать?
Спасибо