Как получить значения ответа URL в Asp.NET - PullRequest
9 голосов
/ 27 марта 2012

Я почти осмелюсь спросить, но как я могу получить ответные данные URL?Я просто больше не могу вспомнить.

Мой сценарий: я использую API Twitter, чтобы получить фотографию профиля пользователя.Этот API-адрес возвращает местоположение JPG.Так что, если я на самом деле напишу этот HTML в моих представлениях:

<img src="https://api.twitter.com/1/users/profile_image?screen_name=twitterapi&size=bigger"/> 

Браузер автоматически использует ответ jpg для src popertie.Как это:

Ответы [ 3 ]

12 голосов
/ 27 марта 2012

Я не совсем уверен, что вы спрашиваете.

Я думаю, вы можете использовать WebClient.DownloadData в c # для вызова этого URL. После загрузки файла вы можете поместить его в базу данных.

byte[] response = new System.Net.WebClient().DownloadData(url);

Загрузить файл по HTTP в байтовый массив в C #?

РЕДАКТИРОВАТЬ: ЭТО РАБОТАЕТ ДЛЯ МЕНЯ

WebRequest request = WebRequest.Create("https://api.twitter.com/1/users/profile_image?screen_name=twitterapi&size=bigger");
WebResponse response = request.GetResponse();
Console.WriteLine(response.ResponseUri);

Console.Read( );

из Способ определения URL перенаправления

РЕДАКТИРОВАТЬ: ЭТО ДРУГОЙ МЕТОД Я ДУМАЮ ... используя show.json из Считать URL-адрес абсолютного перенаправленного атрибута SRC для изображения

http://api.twitter.com/1/users/show.json?screen_name=twitterapi

7 голосов
/ 27 марта 2012

Вы также можете сделать это, используя HttpClient:

public class UriFetcher
{
    public Uri Get(string apiUri)
    {
        using (var httpClient = new HttpClient())
        {
            var httpResponseMessage = httpClient.GetAsync(apiUri).Result;
            return httpResponseMessage.RequestMessage.RequestUri;
        }
    }
}

[TestFixture]
public class UriFetcherTester
{
    [Test]
    public void Get()
    {
        var uriFetcher = new UriFetcher();
        var fetchedUri = uriFetcher.Get("https://api.twitter.com/1/users/profile_image?screen_name=twitterapi&size=bigger");
        Console.WriteLine(fetchedUri);
    }
}
2 голосов
/ 27 марта 2012

Для этого можно использовать классы HttpWebRequest и HttpWebResponse (через using System.Net);

  HttpWebRequest webRequest =
    WebRequest.Create("https://api.twitter.com/1/users/profile_image?screen_name=twitterapi&size=bigger") as HttpWebRequest;

  webRequest.Credentials = CredentialCache.DefaultCredentials;

  HttpWebResponse response = webRequest.GetResponse() as HttpWebResponse;

  string url = response.ResponseUri.OriginalString;

url теперь содержит строку "https://si0.twimg.com/profile_images/1438634086/avatar_bigger.png"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...