2011-08-02 21 views
2

私はhttpwebrequesthttpwebresponseについてコードを書いています。サーバーにデータを送信する必要がありますが、この要求は「要求が送信された後は実行できません」というメッセージが表示されます。次のコードを参照してください。エラー:要求が提出された後にこの操作を実行することはできません

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あなたが要求streem上のすべてのstreamoperationsを移動する必要がありますobove GetResponse()、too – Kerwindena

+0

ありがとうございます.itはうまく動作します – soundy

関連する問題