2016-12-23 18 views
1

私はサードパーティのRest APIを呼び出しているASP.NETを作成しています。サードパーティのAPIにアクセスできるのは、ユーザー名とパスワードだけです。またAsp.NetからのRest API呼び出しC#

public string Get(string LabName) 
    { 
    string userName = ConfigurationManager.AppSettings["username"]; 
    string password = ConfigurationManager.AppSettings["password"]; 
    string BaseURL = ConfigurationManager.AppSettings["BaseURL"]; 

    using (var client = new HttpClient()) 
    { 

     Uri uri = new Uri(BaseURL); 
     client.BaseAddress = uri; 
     client.DefaultRequestHeaders.Accept.Clear(); 
     client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml")); 
     string clarity_URL = BaseURL+"api/v2/labs?name="+LabName; 
     var response = client.GetAsync(clarity_URL).Result; 

     string responseString = response.Content.ReadAsStringAsync().Result; 
     return responseString; 

私はHttpClientまたはHttpWebRequest誰がどのように安全に呼び出すために私を示唆ASP.NET.CanでのREST APIを呼び出し中に.Iは、ユーザー名とパスワードを渡す方法を確認していないを使用する必要がありますHTTP基本認証を使用していますAPI

答えて

2
var byteArray = Encoding.ASCII.GetBytes("username:password1234"); 

client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray)); 
+0

私は、文字列のユーザ名がVAR BYTEARRAY = Encoding.ASCII.GetBytes(ユーザ名:パスワード) '与えてみました持っているので、「GetBytesメソッド」の最高過負荷がないエラー' 'のように、それはエラーをスローします'userName'という名前のパラメータを持つ\t ' – user4912134

+0

この答えが正しい解決策だと思うなら、 'Encoding.ASCII.GetBytes(username +": "+ password);' –

+0

@ user4912134のようにする必要があります。 :) –

関連する問題