2013-08-21 15 views
25

私はAPIを休まに新しいですし、.NETユーザー名とパスワードでのREST APIを呼び出す - どのように

を経由して、それらを呼び出す私は、APIを持っている:APIのhttps://sub.domain.com/api/operations?param=value&param2=value

ノートには、Iを認可することを言います基本的なアクセス認証を使用する必要があります - どうすればいいですか?

私は現在、このコードを持っている:私は401不正エラーが発生しますが

 WebRequest req = WebRequest.Create(@"https://sub.domain.com/api/operations?param=value&param2=value"); 
     req.Method = "GET"; 
     //req.Credentials = new NetworkCredential("username", "password"); 
     HttpWebResponse resp = req.GetResponse() as HttpWebResponse; 

を。

私は何が欠けていますか、基本アクセス認証を使用してAPIコールを作成するにはどうすればよいですか?

+0

認証タイプはAPIによって異なります。コールしようとしているAPIとは何ですか? 401 unauthorizedとは、無効な資格情報を明確に渡していて、診断のための十分なコンテキストを提供していないことを意味します。 APIはOAuthを使用していますか? –

答えて

40

APIにHTTP基本認証を使用するように指示されている場合は、リクエストにAuthorizationヘッダーを追加する必要があります。私はこのように見えるようにコードを変更したい:

WebRequest req = WebRequest.Create(@"https://sub.domain.com/api/operations?param=value&param2=value"); 
    req.Method = "GET"; 
    req.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes("username:password")); 
    //req.Credentials = new NetworkCredential("username", "password"); 
    HttpWebResponse resp = req.GetResponse() as HttpWebResponse; 

はもちろん、正しい値で"username""password"の交換します。

+0

しかし、 'resp'の値を読み取る方法は? –

+0

@SHEKHARSHETE [HttpWebResponse.GetResponseStream()](http://msdn.microsoft.com/en-us/library/system.net.httpwebresponse.getresponsestream.aspx)を参照してください。ストリームが終了したらストリームを閉じる際の注意点を特に注意してください。これは非常に重要です。 – Adrian

+0

req.Credentials ..行にユーザー名とパスワードを付けてください。さもなければ、それは未認可のままです。 – Gurusinghe

関連する問題