2017-07-25 1 views
0

Besoin d'aide pour accéder à une API Web externe transmettant des informations d'identification afin d'accéder aux méthodes disponibles. J'ai inclus le code ci-dessous que j'utilise pour tenter d'accéder à l'API Web. Toutefois, je reçois l'erreur suivante chaque fois que j'essaie d'y accéder:MVC accédant à l'API Web externe à l'aide des informations d'identification de connexion

"La connexion sous-jacente a été fermée: Impossible d'établir une relation d'approbation pour le canal sécurisé SSL/TLS."

Qu'est-ce que je manque ou que fais-je de mal? J'ai tourné autour de ceci pendant quelques jours et j'ai essayé quelques techniques différentes mais continue à avoir la même erreur. Voici une technique que j'ai utilisée.

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; 
     } 
    } 

Toute aide serait grandement appréciée.

Merci

+0

Est-ce que vous apiBaseUri commencer par un HTTPS? –

+0

apiBaseUri commence par https: // – Alex

+1

Vous devriez jeter un oeil à ça. https://stackoverflow.com/questions/22251689/make-https-call-using-httpclient –

Répondre

0

Il y a un peu d'une différence lorsque vous utilisez HTTPS vs HTTP. Cette question devrait vous fournir les informations dont vous avez besoin pour résoudre votre problème.

Make Https call using HttpClient