Использование tinyurl.com в приложении .Net ... возможно? - PullRequest
14 голосов
/ 14 декабря 2008

Я нашел следующий код для создания URL-адреса tinyurl.com:

http://tinyurl.com/api-create.php?url=http://myurl.com

Это автоматически создаст URL-адрес tinyurl. Есть ли способ сделать это с помощью кода, в частности C # в ASP.NET?

Ответы [ 4 ]

18 голосов
/ 14 декабря 2008

Возможно, вам следует добавить проверку ошибок и т. Д., Но это, вероятно, самый простой способ сделать это:

System.Uri address = new System.Uri("http://tinyurl.com/api-create.php?url=" + YOUR ADDRESS GOES HERE);
System.Net.WebClient client = new System.Net.WebClient();
string tinyUrl = client.DownloadString(address);
Console.WriteLine(tinyUrl);
11 голосов
/ 14 декабря 2008

После еще одного исследования ... Я наткнулся на следующий код:

    public static string MakeTinyUrl(string url)
    {
        try
        {
            if (url.Length <= 30)
            {
                return url;
            }
            if (!url.ToLower().StartsWith("http") && !Url.ToLower().StartsWith("ftp"))
            {
                url = "http://" + url;
            }
            var request = WebRequest.Create("http://tinyurl.com/api-create.php?url=" + url);
            var res = request.GetResponse();
            string text;
            using (var reader = new StreamReader(res.GetResponseStream()))
            {
                text = reader.ReadToEnd();
            }
            return text;
        }
        catch (Exception)
        {
            return url;
        }
    }

Похоже, это может сработать.

4 голосов
/ 14 декабря 2008

Имейте в виду, что если вы создаете полнофункциональное приложение, то у вас довольно специфическая зависимость от схемы URL / API TinyURL. Возможно, у них есть гарантии, что их URL не изменится, но стоит проверить

3 голосов
/ 14 декабря 2008

Вы должны вызвать этот URL из своего кода, затем прочитать выходные данные с сервера и обработать их.

Взгляните на класс System.Net.WebClient , DownloadString (или лучше: DownloadStringAsync ), который вам нужен.

...