2012-09-25 142 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()調用時發出。

相關問題