Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Очистка памяти при выполнении макроса
 
Всем привет.

Столкнулся с проблемой нехватки памяти и решил, что я умнее всех и пытался очистить ее следующим образом: Set oResponse = Nothing. Но это не работает, оперативная память не освобождается, пока не произойдет выход из цикла. Пример кода:
Код
Dim oRequestList As Collection
Dim oRequest As ServerXMLHTTP60
Dim oResponse as Object

'создание асинхронных http-запросов и добавление их в oRequestList

For Each oRequest In oRequestList
    oRequest.waitForResponse
    Set oResponse = JsonConverter.ParseJson(oRequest.responseText)

    'обработка json ответа

    Set oResponse = Nothing
Next oRequest
Иногда json-ответ, преобразованный в структуру для VBA может занимать 400 и более Мб памяти, также количество запросов варьируется. Были случаи, когда суммарно Excel начинал "поедать" 8 Гб памяти, что может быть страшным для некоторых ПК. Строкой Set oResponse = Nothing я думал память, выделенная под json-ответ, высвобождается, но это не так. Она высвобождается автоматически, когда происходит выход из цикла, а хотелось бы поддерживать эти ~400 Мб занятой памяти на протяжении работы всего цикла. Это как-то возможно сделать?

Ну и на самом деле я все равно не верил, что это поможет, ведь каждую итерацию в oResponse присваивается ссылка на другой объект, что, по идее, должно уничтожать объект по предыдущей ссылке.
Отправка запроса к API с использованием сертификата
 
Приветствую всех.

Возникла проблема с отправкой запроса к API Яндекс Директ.
Выложил ссылки на справку по Яндексу на всякий, потому что проблема возникает при отправке запросов именно к нему (в приложенном файле, а то местный антиспам не дает отправить сообщение). Тех. поддержка Яндекса может читать только общедоступную справку и давать консультации только теми словами, что уже и так написано в справке. Собственно они мне так и ответили, что если бы я писал на cURL или питоне, то они бы подсказали. Хотя я даже в этом случае сомневаюсь в их компетентности...
Попробовал отправить запросы этим же кодом к API Youtube, запрос улетел без капризов и был получен ответ.

При отправке запроса к API Яндекс Директ получаю следующие ошибки (в зависимости от опции WinHttpRequestOption_SecureProtocols):
  • при включенных SSL 2/3 - Ошибка 80072f7d: Ошибка поддержки безопасных каналов.
  • при включенном TLS 1.0 - Ошибка 80072f99: В сертификате клиента отсутствовали учетные данные.
По коду:
Строки с закомментированными опциями - все то, что я пробовал, чтобы запрос улетел.
Строки с закомментированными заголовками - все заголовки, которые были добавлены Rest Api Client'ом (кроме Host, это отсебятина). Основные, что требуются - это Authorization, Client-Login, Content-Type и Accept-Language.
Также пробовал использовать XMLHTTP2 v6.0 для отправки запроса, ошибки аналогичные, только их коды другие.

Возможно, Excel действительно не предназначен для таких запросов, но хочется верить, что все получится :)
Если есть замечания по обработке статусов http или еще чему, принимаю критику, но первостепенная задача - отправка запроса, а дальше уже гори оно огнем дело техники.

Скрытый текст
Страницы: 1
Наверх