Мне нужно сократить мои ссылки, используя бит в C#. Есть ли пакет nuget для этого? Может ли кто-нибудь предоставить мне код для этого, чтобы я мог использовать это.Пакет Nuget для похудения для сокращения ссылок
ответ
Отъезд https://www.nuget.org/packages/BitlyAPI/ или просто позвоните по адресу bit.ly api. Api очень прост в использовании и работе.
public string Shorten(string longUrl, string login, string apikey)
{
var url = string.Format("http://api.bit.ly/shorten?format=json&version=2.0.1&longUrl={0}&login={1}&apiKey={2}", HttpUtility.UrlEncode(longUrl), login, apikey);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
try
{
WebResponse response = request.GetResponse();
using (Stream responseStream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);
JavaScriptSerializer js = new JavaScriptSerializer();
dynamic jsonResponse = js.Deserialize<dynamic>(reader.ReadToEnd());
string s = jsonResponse["results"][longUrl]["shortUrl"];
return s;
}
}
catch (WebException ex)
{
WebResponse errorResponse = ex.Response;
using (Stream responseStream = errorResponse.GetResponseStream())
{
StreamReader reader = new StreamReader(responseStream, Encoding.GetEncoding("utf-8"));
String errorText = reader.ReadToEnd();
// log errorText
}
throw;
}
}
Вы можете получить свой логин и apikey из bit.ly, перейдя по этой ссылке https://bitly.com/a/your_api_key
я имел проблемы с пакетом NuGet Bitly.Net поэтому я реализовал решение @ devfunkd в выше. Однако у меня все еще были те же проблемы на Azure see this related link, поэтому мне пришлось разработать немного другое решение.
Мое решение использует для аутентификации fixed OAuth Token, как это предлагает поддержка bit.ly. Он работал над Azure и имеет то преимущество, что он не обесценивается, как старый «login»/«apiKey». В случае, если это полезно кому-то, вот код, based on @devfunkd, но обновленный:
- Используйте фиксированный токен OAuth для проверки.
- Используйте API-интерфейс bit.ly V3, который имеет более удобный формат json.
- В нем используется Json.NET json deserialiser, который я использую в основном.
- Я сделал это асинхронно, так как большая часть остальной части моей системы была асинхронной.
Обратите внимание, что в коде поле _bitlyToken
должен содержать маркер, созданный будет this page. Переменная _logger
содержит какой-то журнал, чтобы ошибки не были потеряны.
public async Task<string> ShortenAsync(string longUrl)
{
//with thanks to @devfunkd - see https://stackoverflow.com/questions/31487902/nuget-package-for-bitly-to-shorten-the-links
var url = string.Format("https://api-ssl.bitly.com/v3/shorten?access_token={0}&longUrl={1}",
_bitlyToken, HttpUtility.UrlEncode(longUrl));
var request = (HttpWebRequest) WebRequest.Create(url);
try
{
var response = await request.GetResponseAsync();
using (var responseStream = response.GetResponseStream())
{
var reader = new StreamReader(responseStream, Encoding.UTF8);
var jsonResponse = JObject.Parse(await reader.ReadToEndAsync());
var statusCode = jsonResponse["status_code"].Value<int>();
if (statusCode == (int) HttpStatusCode.OK)
return jsonResponse["data"]["url"].Value<string>();
//else some sort of problem
_logger.ErrorFormat("Bitly request returned error code {0}, status text '{1}' on longUrl = {2}",
statusCode, jsonResponse["status_txt"].Value<string>(), longUrl);
//What to do if it goes wrong? I return the original long url
return longUrl;
}
}
catch (WebException ex)
{
var errorResponse = ex.Response;
using (var responseStream = errorResponse.GetResponseStream())
{
var reader = new StreamReader(responseStream, Encoding.GetEncoding("utf-8"));
var errorText = reader.ReadToEnd();
// log errorText
_logger.ErrorFormat("Bitly access threw an exception {0} on url {1}. Content = {2}", ex.Message, url, errorText);
}
//What to do if it goes wrong? I return the original long url
return longUrl;
}
}
Я надеюсь, что это поможет кому-то.
- 1. ExcludeVersion для существующих ссылок NuGet
- 2. Создать пакет Nuget для Boost
- 3. подталкивания пакет NuGet для VS2015
- 4. Nuget пакет для ILMerged dll
- 5. Инструменты для нарезки схемы/для похудения
- 6. Как включить перенаправления Assembly Для NuGet Пакет
- 7. Определить пакет NuGet для определенного пространства имен
- 8. Есть ли пакет NuGet для Microsoft.Xrm.Client?
- 9. Специальный пакет обновления для автоматического обновления NuGet
- 10. Программно создавая пакет NuGet для локального репозитория
- 11. NuGet пакет для непрерывной интеграции TFS
- 12. Создайте пакет NuGet для всего решения
- 13. Где находится пакет NuGet для Microsoft.WindowsAzure.ServiceRuntime?
- 14. Как создать пакет nuget для родного C++
- 15. nuget не добавляет ссылок
- 16. Как создать пакет NuGet с использованием .csproj и внешних ссылок?
- 17. В чем преимущества сокращения ссылок?
- 18. Последние NuGet Packge для FluentAssertions отсутствующих ссылок System.XML
- 19. Восстановить пакет nuget Jenkins
- 20. Как загрузить пакет Nuget
- 21. Как восстановить пакет Nuget
- 22. Как установить NuGet пакет
- 23. Каков наилучший сервис для фильтрации спама/злоупотреблений/вредоносных ссылок для сокращения ссылок webapp?
- 24. Xamarin добавляет пакет NuGet
- 25. Какой каталог для извлечения Entity Framework 6 пакет NuGet для
- 26. Замена двоичных ссылок на NuGet Ссылки для сотен проектов
- 27. Справочный пакет Nuget, предназначенный для разных .NET Framework
- 28. Mvvmcross пакет nuget не устанавливается
- 29. Добавление конкретных ссылок из пакета NuGet
- 30. Где Xamarin.Forms.Theme.Base NuGet Пакет