Der Remote-Server hat einen Fehler zurückgegeben: (400) Fehler beim Anfordern der Anforderung, während der folgende Code ausgeführt wird .. __ Ich versuche, die XML-Datei auf den http-Server hochzuladen. __ Meine XML-Datei enthält ein Tag für den Benutzernamen und das Kennwort und Domäne und wenn ich versuche, eine Verbindung herzustellen, ist es manuell möglich, die Verbindung herzustellen, aber wenn ich versuche, die Verbindung über diesen Code herzustellen, erhalte ich die gleichen Anmeldeinformationen. Ich erhalte den Fehler 400 Bad Request diese Ausgabe . Danke `
public static void UploadHttp(string xml)
{
string txtResults = string.Empty;
try
{
string url = "http://my.server.com/upload.aspx ";
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.KeepAlive = false;
request.SendChunked = true;
request.AllowAutoRedirect = true;
request.Method = "Post";
request.ContentType = "text/xml";
var encoder = new UTF8Encoding();
var data = encoder.GetBytes(xml);
request.ContentLength = data.Length;
var reqStream = request.GetRequestStream();
reqStream.Write(data, 0, data.Length);
reqStream.Close();
WebResponse response = null;
response = request.GetResponse();
var reader = new StreamReader(response.GetResponseStream());
var str = reader.ReadToEnd();
}
catch (WebException ex)
{
if (ex.Status == WebExceptionStatus.ProtocolError)
{
HttpWebResponse err = ex.Response as HttpWebResponse;
if (err != null)
{
string htmlResponse = new StreamReader(err.GetResponseStream()).ReadToEnd();
txtResults = string.Format("{0} {1}", err.StatusDescription, htmlResponse);
}
}
else
{
}
}
catch (Exception ex)
{
txtResults = ex.ToString();
}
}`
Sind Sie sicher, dass Sie POST nicht PUT verwenden sollten?
POST wird normalerweise mit application/x-www-urlencoded
-Formaten verwendet. Wenn Sie eine REST - API verwenden, sollten Sie möglicherweise PUT verwenden? Wenn Sie eine Datei hochladen, müssen Sie wahrscheinlich multipart/form-data
verwenden. Nicht immer, aber normalerweise ist es das Richtige zu tun ..
Sie scheinen auch nicht die Anmeldeinformationen zur Anmeldung zu verwenden. Sie müssen die Credentials-Eigenschaft des HttpWebRequest-Objekts verwenden, um den Benutzernamen und das Kennwort zu senden.
400 Fehlerhafte Anforderung Fehler aufgrund falscher Authentifizierungseinträge.
Hinweis: Meistens werden aufgrund falscher Authentifizierungseinträge aufgrund von Änderungen des Zauberspruchs 400 Fehler angezeigt.
Welche Art von Authentifizierung verwenden Sie? Senden Sie die Anmeldeinformationen mit den zuvor genannten Eigenschaften und richten Sie einen Cookie-Handler ein . Sie lassen bereits eine Umleitung zu. Bei einer Umleitung müssen Sie die Sitzung speichern, die meistens in einem Sitzungscookie gespeichert ist.