2012-03-27 22 views
9

私はほとんど尋ねることはありませんが、URLの応答データはどのように取得できますか? 私はもう覚えていません。Asp.NETでURL応答値を取得する方法

私のシナリオ:TwitterのAPIを使用してユーザーのプロフィール画像を取得しています。そのapi urlはjpgの場所を返します。 だから私は実際に私の見解では、このHTMLを記述する場合:

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

ブラウザの自動のsrc popertieの応答JPGを使用しています。このように:

今私の質問は非常に簡単です:私は私のデータベースに置くためにC#でその.JPGの場所を取得できますか?

+0

なぜあなたは勇気がない:) ..itsかなりGUD質問が含まれています!あなたの返信は – sajad

答えて

10

あなたが何を求めているのか正確にはわかりません。

私はあなたがそのURLを呼び出すためにC#でWebClient.DownloadDataを使うことができると思います。ファイルをダウンロードしたら、データベースに配置することができます。

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

Download a file over HTTP into a byte array in C#?

EDIT:これはA way to figure out redirection URL

EDITからME

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

のために働いて:これはRead the absolute redirected SRC attribute URL for an image

からshow.jsonを使用して...私が考える別の方法であります

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

+0

Thxです。しかし、バイトデータは実際には必要ありません。 APIを呼び出すことで、URL twitterはprofilepictureの場所を返します。ブラウザにURL「https://api.twitter.com/1/users/profile_image?screen_name=twitterapi&size=bigger」を投稿すると、テストすることができます。 Twitter APIによって返されたjpgの場所を保存したいと思っています – Gigi2m02

+0

彼らは302のリダイレクトをしています...更新された答えを確認してください – Timmerz

+0

Thx。それは私の記憶の中で失われたコードです。 – Gigi2m02

6

また、それは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); 
    } 
} 
+0

ニースの答え; +1の簡単な例とテスト: – dash

+0

あなたの答えもThxですが、私はTimmerzコードでより快適に感じます。 usfullだったので、upvote。 – Gigi2m02

2

あなたは(using System.Net経由)のHttpWebRequestとHttpWebResponseのクラスを使用することができ、これを達成するために、

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"

関連する問題