HTTPS (безопасный) POST вопрос в приложении C # WinForms - PullRequest
1 голос
/ 17 марта 2012

Я создаю приложение WinForms на C # и использую метод POST для отправки буфера на веб-сайт HTTPS.Когда я отправляю данные по HTTPS, загруженные данные дублируются.Например, если я посылаю в мой буфер Hi , он отправляет HiHi на сервер.

Работает, как и ожидалось, при обычном HTTP-соединении.Эта проблема возникает только при безопасном соединении.

Я ставлю точку останова на запись потока непосредственно перед отправкой данных, и буфер содержит правильные данные.Почему он отправляет двойную информацию по HTTPS?

заголовки:

   POST /login/ HTTP/1.0
   Content-Type: application/x-www-form-urlencoded
   Host: abc.test.com
   Content-Length: 12

   username=bobusername=bob

-

Это код, который я сейчас использую:

string post_data = "username=bob";

string uri = "https://abc.test.com/login/";

HttpWebRequest request = (HttpWebRequest)
WebRequest.Create(uri); 
request.KeepAlive = false;
request.ProtocolVersion = HttpVersion.Version10;
request.Method = "POST";

byte[] postBytes = Encoding.ASCII.GetBytes(post_data);

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

Stream requestStream = request.GetRequestStream();

requestStream.Write(postBytes, 0, postBytes.Length);

MessageBox.Show(postBytes.Length.ToString());
requestStream.Close();

HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream());
string tmp = sr.ReadToEnd().Trim();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...