2012-09-25 93 views
8

对于使用HttpWebRequest的POST请求,当我写入请求流时,数据在什么时候发送?当我关闭请求流或当我调用GetResponse时?是否需要GetResponse调用?是否需要HttpWebRequest.GetResponse才能完成POST?

的.NET文档似乎并不约为究竟发生什么事

很清楚下面的代码我很好奇:

HttpWebRequest request = HttpWebRequest.Create(url) as HttpWebRequest; 
request.Method = "POST"; 
request.ContentLength = jsonData.Length; 
request.ContentType = "application/json"; 

Stream requestStream = request.GetRequestStream(); 

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

requestStream.Close(); 

var response = request.GetResponse() as HttpWebResponse; 

谢谢!

+0

您需要获得响应*无论如何*阅读状态代码,并确定您的“POST”是否被服务器接受或拒绝... –

回答

2

是的,GetResponse调用是必须的,不仅对于POST请求,对于GET,HEAD请求也是如此。要求/数据在您致电GetResponse时发送。

+0

这是不正确的,我遇到请求后立即发送将数据写入其流,GetResponse被注释掉,我可以调试远程调用的方法。我完全绝望...... –

1

启动嗅探器并在您的requestStream.Close();上设置断点,您将看到该请求在GetResponse()调用时发出。

相关问题