Situation: 1) Ich muss HTTP [S] Netzwerkaufrufe in C++ unter Windows für unsere DLL machen. 2) Sie benötigen mindestens XP (ich denke, SP3 ist ok) 3) kein ATL, keine MFC, keine IEWie bekomme ich MSXML IXMLHTTPRequest zur Verarbeitung von HTTP-Weiterleitungen?
Frage zu unterstützen: ich vor kurzem wechselte von Boost-CPP-netlib zur Verwendung von MSXML des IXMLHTTPRequest für unsere (sehr einfach) Netzwerkanforderungen an Windows. Während alles gut zu funktionieren schien, haben wir bemerkt, dass Redirects nicht funktionieren. In fiddler bekomme ich ein HTTP 302, gefolgt von der zweiten erfolgreichen HTTP 200 Anfrage/Antwort.
Jedoch im tatsächlichen C++ Code bekomme ich E_ACCESSDENIED von IXMLHTTPRequest-> senden und der HTTP-Antwortcode ist Null. Also im Code habe ich keine Möglichkeit zu wissen, was wirklich passiert ist.
Da von Fiddler alles funktionierte, habe ich versucht, es async und Überprüfung der Rückruf, versuchte auch IXMLHttpServerRequest, IXMLHttpServerRequest2 und MSXML v6, aber keiner funktionierte.
Hinweis: Wir verwenden IXMLHttpRequest2 auf WinRT und das funktioniert gut (Umgang mit dem OnRedirect-Ereignis).
Gibt es trotzdem, MSXML IXMLHTTPRequest zu erhalten, Umleitungen zu behandeln?
Oder muss ich zu WinInet/WinSockets/WinHttp wechseln? Ich nehme an, ich muss WinHttp verwenden (da ich Windows Services/IIS unterstützen muss, was WinInet anscheinend nicht tut, und WinSockets ist zu niedrig für meine Bedürfnisse, denke ich).
Danke!
Gibt es Beispielcode und Beispiel-URL, die das Problem veranschaulichen? Das E_ACCESSDENIED, das von dem Send-Aufruf zurückgegeben wird, scheint seltsam. –