2017-08-21 2 views
1

den folgenden Code zu haben:Beitrag mit Parametern HttpWebRequest in 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(); 

Was ist los? Ich kann die Anfrage nicht machen, aber ich kann externe Programme wie Postman verwenden. Siehst du etwas falsch in der Kopfzeile?

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

Vielen Dank!

+0

Was ist der Fehler? – PMerlet

+0

Versuchen Sie, Ihre Anfrage mit einer guten Anfrage mit Fiddler zu vergleichen. – Youssef13

Antwort

1

Ihr Inhaltstyp sollte application/x-www-form-urlencoded sein.

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

Sorry, ich habe vergessen, es hinzuzufügen! – Argon

+0

Aber mit diesem Content-Typ immer noch nicht funktionieren :( – Argon

+0

Kannst du den Fehlercode? – EylM