2017-08-21 1 views
1

Avoir le code suivant:post avec des paramètres en utilisant HttpWebRequest en C#

   var request = HttpWebRequest.Create("https://api.channeladvisor.com/oauth2/token"); 
      request.ContentType = "text/html";    
      request.Method = "POST"; 
      request.Headers.Add("cache-control","no-cache"); 
      request.Headers.Add("Authorization", "Basic " + Base64Translator.ToBase64(System.Text.Encoding.ASCII, devKey+":"+sharedSecret));   

      string postData = " grant_type=refresh_token&refresh_token=a12SL1bHhJwerxM2NFth2efZw0yIW7462kAhR43UCJA"; 

      var data = Encoding.ASCII.GetBytes(postData); 
      request.ContentLength = data.Length; 

      using (var stream = request.GetRequestStream()) 
      { 
       stream.Write(data, 0, data.Length); 
      } 

      var response = (HttpWebResponse)request.GetResponse(); 
      var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd(); 

Qu'est-ce qui ne va pas? Je ne peux pas faire la demande mais je peux utiliser des programmes externes comme Postman. Voyez-vous quelque chose de mal dans l'en-tête?

Error: "The remote server returned an error: (400) Bad Request." 

Merci!

+0

Quelle est l'erreur? – PMerlet

+0

Essayez de comparer votre demande avec une bonne demande en utilisant Fiddler. – Youssef13

Répondre

1

Votre type de contenu doit être l'application/x-www-form-urlencoded.

request.ContentType = "application/x-www-form-urlencoded"; 
+0

Désolé, j'ai oublié de l'ajouter! – Argon

+0

Mais avec ce type de contenu ne fonctionne toujours pas :( – Argon

+0

Pouvez-vous poster le code d'erreur? – EylM