Ich versuche, eine Anmeldung POST Anfrage mit JSON zu dieser Website Link, und folgen Sie der Umleitung.Mein aktuelles Programm funktioniert gut, wenn die Anmeldedaten falsch sind.Wenn die Details falsch sind, bekomme ich die (401) nicht autorisiert. Nachricht, was bedeutet, dass die Post-Anfrage erfolgreich war. Allerdings ist mein Problem, dass, wenn die Login-Daten korrekt sind, bekomme ich die '(400) Bad Request'. Ich habe keine Ahnung, warum das passiert und ich bin derzeit an diesem Punkt fest. Hier ist mein Code, und ich hoffe, jemand kann mir helfen:C# Json Post Anfrage mit Umleitung
static string url = "https://auth.riotgames.com/authz/auth";
static string uriString = "";
static void Main(string[] args)
{
var request_check = (HttpWebRequest)HttpWebRequest.Create("https://auth.riotgames.com/authz/auth");
request_check.Host = "auth.riotgames.com";
request_check.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0";
request_check.Accept = "application/json, text/javascript, */*; q=0.01";
request_check.Headers.Add("Accept-Language", "en-US,en;q=0.5");
request_check.Headers.Add("Accept-Encoding", "gzip, deflate, br");
request_check.ContentType = "application/json";
request_check.Headers.Add("X-Requested-With", "XMLHttpRequest");
request_check.Referer = "https://auth.riotgames.com/authorize?response_type=code&scope=openid%20email&client_id=merch-store-client&ui_locales=de-DE&login_hint=euw&redirect_uri=https://euw.merch.riotgames.com/de/riot_sso/auth/redirect/";
var cookieContainer = new CookieContainer();
request_check.CookieContainer = cookieContainer;
request_check.Method = "POST";
request_check.KeepAlive = true;
request_check.AllowAutoRedirect = false;
// Account details Senturia:a12365478
using (var streamWriter = new StreamWriter(request_check.GetRequestStream()))
{
string json = "{\"username\":\"Senturia\",\"password\":\"a12365478\",\"remember\":false,\"region\":\"EUW1\",\"language\":\"de_DE\",\"lang\":\"de_DE\"}";
streamWriter.Write(json);
}
try
{
// Get the response ...
using (var webResponse = (HttpWebResponse)request_check.GetResponse())
{
// Now look to see if it's a redirect
if ((int)webResponse.StatusCode >= 300 && (int)webResponse.StatusCode <= 399)
{
uriString = webResponse.Headers["Location"];
Console.WriteLine("Redirect to " + uriString ?? "NULL");
}
}
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
Console.ReadKey();
}
Vielen Dank für den Tipp! Das ist wirklich nützlich! – Catalin