C# - HttpWebRequest POST

Je suis en train de faire un POST de Http à un serveur web Apache.

Je trouve que la mise ContentLength semble être nécessaire pour que la demande de travail.

Je préfère créer un XmlWriter directement à partir de GetRequestStream() et set SendChunked de vrai, mais la demande se bloque indéfiniment.

Ici est de savoir comment ma demande est créée:

    private HttpWebRequest MakeRequest(string url, string method)
    {
        HttpWebRequest request = HttpWebRequest.Create(url) as HttpWebRequest;
        request.Method = method;
        request.Timeout = Timeout; //Property in my class, assume it's 10000
        request.ContentType = "text/xml"; //I am only writing xml with XmlWriter
        if (method != WebRequestMethods.Http.Get)
        {
            request.SendChunked = true;
        }
        return request;
    }

Comment puis-je faire SendChunked travail donc je n'ai pas de définir ContentLength? Je ne vois pas une raison pour stocker les XmlWriter de la chaîne, quelque part avant de les envoyer au serveur.

EDIT: Voici mon code à l'origine du problème:

    using (Stream stream = webRequest.GetRequestStream())
    {
        using (XmlWriter writer = XmlWriter.Create(stream, XmlTags.Settings))
        {
            Generator.WriteXml<TRequest>(request, writer);
        }
    }

Avant que je n'ai pas de l'aide sur le Flux de l'objet renvoyé de GetRequestStream(), j'ai supposé XmlWriter fermé le flux lors de son élimination, mais ce n'est pas le cas.

L'une des réponses ci-dessous, laissez-moi à présent. Je vais les marquer comme réponse.

Autant que HttpWebRequest est concerné, mon code d'origine fonctionne très bien.

Cela fonctionne contre un autre serveur web (pas d'apache)? Et ne vous fermez votre flux à travers le XmlWriter ou la RequestStream?
Je n'ai pas de windows serveur pour l'essayer, et j'avais dû avoir à passer du temps à écrire du code C# pour lire le message. J'ai envie de régler un paramètre sur HttpWebRequest devrait résoudre ce problème.

OriginalL'auteur jonathanpeppers | 2009-12-14