Я пытаюсь отправить запрос HTTP GET в VBA, который включает в себя печенье, содержащее двоеточие, например так:VBA HTTP GET запрос - печенье с двоеточием
objReq.Open "GET", "http://my.url.com?foo=bar", False
objReq.setRequestHeader "Cookie", "abcd=cookie:containing:colons"
objReq.Send
В зависимости от того, какой тип объекта я использую для objReq
, однако запрос обрабатывается по-разному.
Следующий тип объекта работы:
Dim objReq As MSXML2.ServerXMLHTTP
Set objReq = New MSXML2.ServerXMLHTTP
К сожалению, мне нужно использовать другой тип объекта (как MSXML2.ServerXMLHTTP
не может захватить достаточно подробную информацию о HTTP перенаправления). Из того, что я прочитал, мне нужно использовать , MSXML2.ServerXMLHTTP40
или MSXML2.ServerXMLHTTP60
, но при использовании любого из этих объектов возникает следующая ошибка при включении двоеточий в значение cookie.
Я попытался заменить двоеточие с Chr(58)
, %3A
, и двойные кавычки внутри строки без толку. Я также попытался добавить заголовок «Content-Type» с различными кодировками символов, но это тоже не работает.
Кто-нибудь знает, как я могу отправить значение cookie, содержащее двоеточия, используя объекты Winhttp.WinHttpRequest
, MSXML2.ServerXMLHTTP40
или MSXML2.ServerXMLHTTP60
?
PS: В качестве альтернативы, если кто-нибудь знает, как я могу получить конечный URL последовательности переадресации при использовании MSXML2.ServerXMLHTTP
, что будет работать, как хорошо! Winhttp.WinHttpRequest
позволит мне записать код состояния 302, а MSXML2.ServerXMLHTTP40
или MSXML2.ServerXMLHTTP60
позволит мне использовать GetOption(-1)
, но MSXML2.ServerXMLHTTP
не поддерживает ни один из этих методов (из того, что я могу сказать).