Возможно использование tinyurl.com в приложении .Net?

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

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

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

Ответы

Ответ 1

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

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);

Ответ 2

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

    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;
        }
    }

Похоже, это может сделать трюк.

Ответ 3

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

Ответ 4

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

Посмотрите System.Net.WebClient класс, DownloadString (или лучше: DownloadStringAsync), похоже, что вы хотите.

Ответ 5

Согласно этой статье, вы можете реализовать ее следующим образом:

public class TinyUrlController : ControllerBase
{
    Dictionary dicShortLohgUrls = new Dictionary();

    private readonly IMemoryCache memoryCache;

    public TinyUrlController(IMemoryCache memoryCache)
    {
        this.memoryCache = memoryCache;
    }

    [HttpGet("short/{url}")]
    public string GetShortUrl(string url)
    {
        using (MD5 md5Hash = MD5.Create())
        {
            string shortUrl = UrlHelper.GetMd5Hash(md5Hash, url);
            shortUrl = shortUrl.Replace('/', '-').Replace('+', '_').Substring(0, 6);

            Console.WriteLine("The MD5 hash of " + url + " is: " + shortUrl + ".");

            var cacheEntryOptions = new MemoryCacheEntryOptions().SetSlidingExpiration(TimeSpan.FromSeconds(604800));
            memoryCache.Set(shortUrl, url, cacheEntryOptions);

            return shortUrl;
        }
    }

    [HttpGet("long/{url}")]
    public string GetLongUrl(string url)
    {
        if (memoryCache.TryGetValue(url, out string longUrl))
        {
            return longUrl;
        }

        return url;
    }
}

Ответ 6

В .NET это очень просто. Мы будем использовать Tiny URL API для создания крошечного URL.

для получения дополнительной информации, пожалуйста, обратитесь к данной ссылке ниже.

http://www.freshcodehub.com/Article/38/convert-url-to-shorten-url-or-tiny-url-in-aspnet-with-c

public static string MakeTinyUrl(string Url)
        {
            try
            {
                if (Url.Length <= 12)
                {
                    return Url;
                }
                if (!Url.ToLower().StartsWith("http") && !Url.ToLower().StartsWith("ftp"))
                {
                    Url = "http://" + Url;
                }
                var request = WebRequest.Create("Need to put tiny URL API" + Url);
                var res = request.GetResponse();
                string text;
                using (var reader = new StreamReader(res.GetResponseStream()))
                {
                    text = reader.ReadToEnd();
                }
                return text;
            }
            catch (Exception)
            {
                return Url;
            }
        }

Ответ 7

Вот моя версия реализации:

static void Main()
{
    var tinyUrl = MakeTinyUrl("https://stackoverflow.com/info/366115/using-tinyurl-com-in-a-net-application-possible");

    Console.WriteLine(tinyUrl);

    Console.ReadLine();
}

public static string MakeTinyUrl(string url)
{
    string tinyUrl = url;
    string api = " the api url goes here ";
    try
    {
        var request = WebRequest.Create(api + url);
        var res = request.GetResponse();
        using (var reader = new StreamReader(res.GetResponseStream()))
        {
            tinyUrl = reader.ReadToEnd();
        }
    }
    catch (Exception exp)
    {
        Console.WriteLine(exp);
    }
    return tinyUrl;
}