Невозможно получить тело сообщения на стороне сервера из HTTP Post - PullRequest
0 голосов
/ 08 августа 2010

Я отправляю HTTP-запрос с помощью HTTPWebRequest на URL.Я отправляю данные поста, используя тип содержимого multipart / form-data вместе с длиной содержимого тела.Однако на стороне сервера я не могу получить тело.Я могу видеть только отправленные заголовки.Длина содержимого отправленного мной тела также совпадает.

Почему я не могу получить тело.

Метод запроса выглядит следующим образом:

public void Reset(string originalFileData, string uploadLocation)
    {
        TcpClient client = new TcpClient();
        IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Parse(Server), portNo);
        client.Connect(serverEndPoint);
        string responseContent;
        string serverUrl = "http://" + Server + ":" + portNo + "/abc.aspx" + "?uplvar=" + uploadLocation;
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serverUrl);
        request.ContentType = "multipart/form-data";
        request.Method = "POST";
        request.ServicePoint.Expect100Continue = false;
        string postData = originalFileData;
        byte[] byteArray = Encoding.UTF8.GetBytes(postData);
        request.ContentLength = byteArray.Length;
        Stream dataStream = request.GetRequestStream();
        dataStream.Write(byteArray, 0, byteArray.Length);
        dataStream.Close();
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        response.Close();
    }

РедактироватьЯ забыл упомянуть, я могу получить тело при первой отправке запроса, но при последующих отправленных запросах я не могу его получить.Я создаю новое соединение каждый раз, когда отправляю запрос.Таким образом, что-то может препятствовать получению тела запроса.Я не уверен почему.

1 Ответ

0 голосов
/ 08 августа 2010

Попробуйте заменить

request.ContentType = "multipart/form-data";

на

request.ContentType = "application/x-www-form-urlencoded";

или отметьте SO ответ для кода, который работает с multipart / formdata.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...