it-swarm.com.de

HttpWebRequest-Der Remote-Server hat einen Fehler zurückgegeben: (400) Fehlerhafte Anforderung

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();
        }
    }`
7
user1301587

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.

11
Ben

400 Fehlerhafte Anforderung Fehler aufgrund falscher Authentifizierungseinträge.

  1. Prüfen Sie, ob Ihre API-URL richtig oder falsch ist. Leerzeichen nicht anhängen oder voranstellen.
  2. Stellen Sie sicher, dass Ihr Benutzername und Ihr Kennwort gültig sind. Bitte überprüfen Sie alle Rechtschreibfehler während der Eingabe.

Hinweis: Meistens werden aufgrund falscher Authentifizierungseinträge aufgrund von Änderungen des Zauberspruchs 400 Fehler angezeigt.

3
tamil

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.

0
YvesR