2011-08-02 2 views
2

Я написал код около httpwebrequest и httpwebresponse. Мне нужно отправить данные на сервер, но получил это исключение. «Эта операция не может быть выполнена после отправки запроса». см. следующий код:Ошибка: эта операция не может быть выполнена после отправки запроса

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://"+remoteServer+":8080/"); 
request.Credentials = CredentialCache.DefaultCredentials; 
//Stream NewReqstream = request.GetRequestStream(); 
request.Method = "POST"; 
//request.ContentLength = cmd.Length; 
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
Console.WriteLine("Connected.."); 

// Send the command 
//clientSocket.Send(cmd); 

Stream NewReqstream = request.GetRequestStream(); //<-- Error here 
NewReqstream.Write(cmd, 0, cmd.Length); 
NewReqstream.Close(); 

ответ

3

когда вы получите ответ поток запрос представляется, таким образом Вы не можете операция там ...

Попробуйте нравится:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://"+remoteServer+":8080/"); 
request.Credentials = CredentialCache.DefaultCredentials; 
//Stream NewReqstream = request.GetRequestStream(); 
request.Method = "POST"; 
//request.ContentLength = cmd.Length; 

// Send the command 
//clientSocket.Send(cmd); 

Stream NewReqstream = request.GetRequestStream(); //<-- Error here 
NewReqstream.Write(cmd, 0, cmd.Length); 
NewReqstream.Close(); 

// Get the response 
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
Console.WriteLine("Connected.."); 
+0

Спасибо, чувак. Его работы действительно хорошие .. – soundy

1

Исключение указывает вам, что вам нужно знать; HTTP - запрос => ответ, поэтому, если вы запросили ответ (GetResponse()), вы косвенно сказали: «Мой запрос завершен, дайте мне ответ». Переместить GetRequestStream() код вышеGetResponse().

+0

especcially вы должны переместить все streamoperations по запросу струями obove GetResponse(), тоже – Kerwindena

+0

Спасибо .it отлично работает – soundy

Смежные вопросы