Ein Weg, um herauszufinden, Umleitungs-URL
Gegeben eine URL EIN, die wird umgeleitet auf eine 3rd-party-website B, in meiner Anwendung, die ich brauche, um herauszufinden, URL B für den angegebenen url Ein, und fügen Sie es in die DB , dies kann eine windows-Anwendung oder web-oder welcher Weg ist schneller und einfacher mit C#!
Danke !
P. S. ich fordere nicht den code zum einfügen in die DB.
- Hängt davon ab, wie die Umleitung funktioniert. Server-Seite? Client-Seite (also JS)? Versuchen Sie das abrufen der URL mit dem, was http-Wrapper für C# hat, und nach einer 301s/302s. Wenn Sie Glück haben gibt es vielleicht sogar eine Bibliothek für dich tun. Was ist, wenn B leitet an C? Möchten Sie Sie speichern B oder C? Wie weit wird Sie Folgen Sie leitet? Was ist, wenn C leitet nach B? Stellen Sie sicher, dass Sie vermeiden infinite redirect-Schleifen halten den überblick, welche Adressen, die Sie besucht haben, oder die Einstellung einer Umleitung limit (was ich denke ist, wie Firefox/Chrome handle in dieser Ausgabe).
- Server-side-Beispiel wäre schön...ist das nur ein tool zum extrahieren von Daten (d.h. die endgültige URL) - also nicht zu fancy ...getan werden kann, in keiner Weise ! "A" immer umleiten "B" und es ist keine Umleitung mehr passieren, weiter auf von dass es ist eine feststehende Tatsache.
- Client-side code verletzt zu ...Im unter der Annahme einer win form-Anwendung mit einer Instanz des IE im inneren sollte die Arbeit tun...nur nicht ganz sicher
- In einfachen Worten, Sie wollen wissen, wo der Benutzer kam aus dem fallen in Ihre Website? Das ist es? Anfrage.ServerVariables("HTTP_REFERER")?
- nur clarif dies ist jsuta tool können sagen, dass ich eine URL www.abc.com die, wenn eingegeben intern (von eigenen Servern) leitet auf eine 3rd-party Seite, d.h. www.def.com und beide URL ' s sind nicht in irgendeiner Weise in Verbindung mit meiner eigenen Website ...in der Werkzeug-ich sollte es der 1. URL, also www.abc.coma nd sollte es geben, mir das Ergebnis als www.def.com und das ist es ! Referer wlogic würde nur funktionieren, in dem Fall, dass die endgültige URL meiner eigenen Website, das ist nicht der Fall.
Du musst angemeldet sein, um einen Kommentar abzugeben.
WebRequest folgt umleitet, ohne dass der Benutzer eingreifen, so wenn die Umleitungen sind mit 301/302-status-codes die folgenden arbeiten
Wenn die Weiterleitungen erstellt werden, mithilfe von javascript oder HTTP-Equiv-meta-tags dann tun zu müssen, analysieren Sie die Seite und suchen Sie nach diesen. Die HTML-agility-pack ist wahrscheinlich der beste Weg, dies zu tun.
Nehmen, diese ein wenig weiter das folgende ist eine Klasse, die manuell aufgelöst werden die wichtigsten HTTP-redirect-status-codes, den Aufbau einer Geschichte, wie es geht
Uri redirectUri; if (!Uri.TryCreate(location, UriKind.Absolute, out redirectUri)) { if (!Uri.TryCreate(response.ResponseUri, location, out redirectUri)) { throw new WebException("Invalid redirect"); } }
arbeiten in mehr/die meisten/(allen, wenn die Sterne ausrichten) Fällen, aber habe es noch nicht getestet gründlich noch.So verstehe ich Ihre Frage, die Sie können verwenden Sie einen code wie diesen, so können Sie die vorherigen url, und speichern Sie es in die db durch die Verwendung von Linq oder anderen ADO.NET Methoden.
Ich gehe davon aus, dass Sie wissen, wie Sie Datensatz speichern in db mit LINQ. Wenn Sie nicht, Folgen Sie bitte diesem link : LINQ to SQL - 5-Minuten-Überblick
Hoffe, es hilft.