ОБНОВЛЕНИЕ: я пытаюсь отправить данные в https URI.POST работает для HTTP, но не работает для HTTPS uri
Привет! Я создаю ac # winforms exe для публикации данных на веб-сайте.Код ниже.Проблема в том, что поток дублирует мои почтовые данные ..
Например: предположим, я хочу опубликовать это -> username=bob
Затем, когда я проверяю трафик, то, что фактически отправляетсяusername=bobusername=bob
Видите?Он дублирует, добавляет одну и ту же строку еще раз в конец буфера и отправляет ее.
Я схожу с ума, пытаясь найти проблему за два дня. Может ли кто-нибудь решить эту проблему или дать мне несколько советов?пожалуйста?спасибо ..
(длина содержимого правильно установлена на 12, но он отправляет 24 байта, после добавления тех же данных еще раз в конец буфера)
Есть заголовки
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();
Я поставил точку останова в строке byte[] postBytes = Encoding.ASCII.GetBytes(post_data);
, а postBytes
содержит правильные данные ... но дважды выводит.
Почему это происходит?Я надеюсь, что я ясно ..