Ich kann den folgenden Code verwenden, um die HTML-Quelle von der URL zu erhalten, aber wie kann ich die eigentliche URL selbst erhalten? Da manchmal die anfängliche URL einige Weiterleitungen durchläuft und die tatsächliche URL nicht die gleiche ist, möchte ich sie zur Verwendung erfassen. Ich kann keine gute Dokumentation über die Verwendung von Methoden oder Eigenschaften für WinHTTP in Delphi finden. Vielen Dank!Gibt es eine Möglichkeit, die endgültige URL nach Weiterleitungen mit WinHTTP in Delphi zu erhalten?
var http: variant;
begin
http:=createoleobject('WinHttp.WinHttpRequest.5.1');
http.open('GET', 'http://URLtoWebsite.com', false);
http.send;
showmessage(http.responsetext);
end;
Warum nicht eine etablierte Bibliothek wie Indy oder ICS verwenden? –
Zuerst habe ich Indy verwendet, und dann selbst mit dem sslIOhandler, hat es immer noch Probleme mit vielen SSL-Sites. Also dachte ich, es wäre einfacher, stattdessen winhttp zu verwenden. Es ist definitiv einfacher für die Quell-HTML. Aber ich bin definitiv offen für andere Optionen, wenn nicht mit Winhttp möglich. Und möchte auch Indy meiden, es sei denn, es gibt keine andere Alternative. – gts6
OK, aber warum verwenden Sie den COM/OLE-Wrapper anstelle von [WinInet] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa385331.aspx) oder [WinHTTP] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa382925.aspx) API direkt? Es gibt keinen wirklichen Vorteil für die Verwendung des COM/OLE-Wrappers außer in Skriptumgebungen. Sehen Sie sich 'InternetQueryOption()' mit dem Flag 'INTERNET_OPTION_URL' oder' HttpQueryInfo() 'mit den Flags' HTTP_QUERY_CONTENT_LOCATION', 'HTTP_QUERY_LOCATION' und' HTTP_QUERY_URI' an. –