HttpWebRequest-Le serveur distant a retourné une erreur: (400) Bad Request
Je suis Le serveur distant a retourné une erreur: (400) Bad Demande d'erreur lors de l'exécution du code suivant.
Je suis en train de télécharger des fichier xml sur le serveur http.
Mon fichier xml contient la balise pour le nom d'utilisateur,mot de passe et le domaine et lorsque j'essaie de connecter manuellement je suis en mesure de se connecter,mais en utilisant les mêmes informations d'identification lorsque j'essaie de le connecter par le biais de ce code, j'obtiens 400 Bad Request error.
Merci de me suggérer comment surmonter ce problème.
Merci
`
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();
}
}`
Je doute qu'il aurait fait aucune différence, mais vous pourriez essayer d'enlever l'espace de fin de l'URL et l'utilisation de "POST" bloc-caps (ou il doit y avoir une constante pour cela?). Pouvez-vous voir quelque chose dans les logs du serveur? Vous pouvez également essayer d'attraper les deux demandes, manuellement et par le biais de l'application, dans un violon pour chercher les différences. Est-ce que votre ASPX certainement accepter les Messages de texte XML, si?
Non il ne fait pas de différences !!
Non il ne fait pas de différences !!
OriginalL'auteur user1301587 | 2013-01-10
Vous devez vous connecter pour publier un commentaire.
Êtes-vous sûr que vous devriez être à l'aide de POST non?
POST est généralement utilisé avec
application/x-www-urlencoded
formats. Si vous utilisez une API REST, vous devriez peut-être utiliser les METTRE? Si vous téléchargez un fichier, vous aurez probablement besoin d'utilisermultipart/form-data
. Pas toujours, mais souvent, c'est la bonne chose à faire..Aussi, vous ne semblez pas être en utilisant les informations d'identification pour vous connecter - vous besoin d'utiliser les informations d'Identification de la propriété de l'objet HttpWebRequest à envoyer le nom d'utilisateur et mot de passe.
Merci homme vous enregistrer mon temps.
OriginalL'auteur Ben
400 Bad request Erreur sera levée en raison d'authentification incorrecte des entrées.
Remarque: Principalement en raison de la mauvaise authentification des inscriptions en raison de modifications des sorts d'aura lieu de 400 Bad request.
OriginalL'auteur tamil
Ce type d'authentification que vous utilisez?
Envoyer les informations d'identification à l'aide des propriétés Ben dit avant et d'installation d'un cookie gestionnaire.
Vous permettent déjà de redirection, vérifiez que votre serveur si la redirection se produit (NTLM auth n'est pour être sûr). Si il y a une redirection, vous avez besoin de stocker la session, qui est principalement stockée dans un cookie de session.
OriginalL'auteur YvesR