7 Stimmen

Java: Wie kann man leicht überprüfen, ob eine URL bereits gekürzt wurde?

Wenn ich eine allgemeine Url (nicht auf Twitter oder Google beschränkt) wie diese habe:

http://t.co/y4o14bI

Gibt es eine einfache Möglichkeit zu überprüfen, ob die URL gekürzt ist?

Im obigen Fall kann ich als Mensch natürlich sehen, dass es gekürzt wurde, aber gibt es eine automatische und elegant Weg?

11voto

CodeCaster Punkte 140110

Sie könnten eine Anfrage an die URL stellen und nachsehen, ob Sie weitergeleitet werden, und wenn ja, annehmen, dass es sich um einen Verkürzungsdienst handelt. Dazu müssten Sie die HTTP-Statuscodes lesen.

Andererseits könnten Sie einige URL-Verkürzungsdienste (t.co, bit.ly usw.) auf eine Whitelist setzen und davon ausgehen, dass alle Links zu diesen Domänen verkürzt werden.

Der Nachteil der ersten Methode ist, dass sie nicht sicher ist, da einige Websites intern Weiterleitungen verwenden. Der Nachteil der zweiten Methode besteht darin, dass Sie immer wieder Verkürzungsdienste hinzufügen müssen, obwohl nur einige wenige weit verbreitet sind.

2voto

unbeli Punkte 28027

Ein Signal kann darin bestehen, die URL anzufordern und zu sehen, ob sie zu einer Umleitung auf eine andere Domäne führt. Ohne eine gute Definition dessen, was "verkürzt" bedeutet, gibt es jedoch keine generische Möglichkeit.

1voto

kgautron Punkte 7528

Wenn Sie alle Domänen kennen, die zur Verkürzung Ihrer URLs verwendet werden können, prüfen Sie, ob diese enthalten sind:

String[] domains = {"bit.ly", "t.co"...};
for(String domain : domains){
  if(url.startsWith("http://" + domain)){
    return true;
  }
}
return false;

1voto

Bozho Punkte 570413

Das können Sie nicht.

Sie können dies nur überprüfen, wenn Sie einige Verkürzer auflisten und prüfen, ob die Url beginnt damit .

Sie können auch prüfen, ob die URL kürzer als eine bestimmte Länge ist (und einen Pfad/Abfrage-String enthält), aber einige Verkürzer (z. B. tinyurl) können längere URLs haben als normale Websites (aol.com)

Ich würde die Liste der bekannten Verkürzungen vorziehen.

1voto

Buhake Sindi Punkte 85274

Das können Sie nicht: Sie müssen mit Vermutungen arbeiten.

Vermutung:

  • Hat www in der Url existieren.
  • Endet der Servername mit einer gültigen Domäne (z. B. com , edu usw.) oder hat es co.xx wobei xx ist ein gültiger Länder- oder Organisationscode.

Und Sie können weitere Annahmen auf der Grundlage anderer Url-Verkürzungslinks hinzufügen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X