开发者

Error: This Operation cannot be performed after request has been submitted

I've written code about httpwebrequest and httpwebresponse . I need to send data to server but got this exception "This operation cannot be performed af开发者_StackOverflow中文版ter request has been submitted". see the following code:

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();


when you get the response stream the request is submitted so you can not the operation there...

Try it like:

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..");


The exception tells you what you need to know; HTTP is request => response, so if you have asked for the response (GetResponse()) you have implicitly said "my request is complete; give me the response". Move the GetRequestStream() code above the GetResponse().


Make request before response. For anyone needs multiple requests and responses make sure using different variables for each request and response such as req1 res1, req2 res2...

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜