2017-07-25 47 views
0

需要一些帮助访问外部Web API传递凭据以访问可用的方法。我已经包含了我使用的代码,以尝试访问Web API。但是,每当我尝试访问它时,都会收到以下错误消息:MVC使用登录凭证访问外部Web API

“底层连接已关闭:无法建立SSL/TLS安全通道的信任关系。”

我在想什么,或者我做错了什么?我已经绕了几天,并尝试了几种不同的技术,但仍然得到相同的错误。这是我使用的一种技术。

private static async Task<string> GetAPIToken(string userName, string password, string apiBaseUri) 
    { 
     try 
     { 
      using (var client = new HttpClient()) 
      { 
       //setup client 
       client.BaseAddress = new Uri(apiBaseUri); 
       client.DefaultRequestHeaders.Accept.Clear(); 
       client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 

       //setup login data 
       var formContent = new FormUrlEncodedContent(new[] 
      { 
       new KeyValuePair<string,string>("username",userName), 
       new KeyValuePair<string,string>("password",password), 
      }); 

       //send request 
       HttpResponseMessage responseMessage = await client.PostAsync("Token", formContent); 

       //get access token from response body 
       var responseJson = await responseMessage.Content.ReadAsStringAsync(); 
       var jobject = JObject.Parse(responseJson); 
       return jobject.GetValue("access_token").ToString(); 
      } 
     } 
     catch (Exception ex) 
     { 
      return null; 
     } 
    } 

任何帮助将不胜感激。

谢谢

+0

你的apiBaseUri是否以HTTPS开头? –

+0

apiBaseUri确实以https:// – Alex

+1

开头你应该看看这个。 https://stackoverflow.com/questions/22251689/make-https-call-using-httpclient –

回答