Ситуация: 1) Мне нужно сделать HTTP [S] сетевых вызовов в C++ для Windows для нашей DLL. 2) Необходимо поддерживать по крайней мере, XP (я предполагаю, что SP3 нормально) 3) нет ATL, нет MFC, нет IEКак получить MSXML IXMLHTTPRequest для обработки перенаправления HTTP?
Вопрос: Я недавно перешел от Boost, CPP-Netlib с использованием IXMLHTTPRequest MSXML для нашего (очень простые) сетевые потребности в окнах. Хотя все, казалось, отлично работает, мы заметили, что перенаправления не работают. В fiddler я получаю HTTP 302, а затем второй успешный запрос/ответ HTTP 200.
Однако в действительном коде C++ я получаю E_ACCESSDENIED из IXMLHTTPRequest-> Send и код ответа HTTP равен нулю. Поэтому в коде я не могу понять, что на самом деле произошло.
С тех пор, как с Fiddler все работает, я попытался сделать его асинхронным и проверить обратный вызов, также попробовал IXMLHttpServerRequest, IXMLHttpServerRequest2 и MSXML v6, но никто не работал.
Примечание: Мы используем IXMLHttpRequest2 на WinRT, и это отлично работает (обработка события OnRedirect).
Есть ли в любом случае, чтобы получить IXMLHTTPRequest MSXML для обработки перенаправлений?
Или мне нужно переключиться на WinInet/WinSockets/WinHttp? Я полагаю, мне нужно использовать WinHttp (так как мне нужно поддерживать Windows Services/IIS, чего, по-видимому, нет, WinInet, а WinSockets слишком низкий для моих потребностей).
Спасибо!
Есть ли образец кода и образец URL, которые демонстрируют проблему? E_ACCESSDENIED, возвращенный из вызова «Отправить», кажется странным. –