0
我正在使用下面的代碼向一個站點發送一個字節數組。爲什麼這個代碼即使在沒有互聯網連接的情況下也不會拋出異常?即使沒有連接,我也能夠獲得流並能夠寫入它。我期望它會在Stream postStream = request1.EndGetRequestStream(result)
處拋出異常。任何人都有任何想法爲什麼它的行爲如此。即使沒有互聯網連接,HttpWebRequest也會流出
private void UploadHttpFile()
{
HttpWebRequest request = WebRequest.CreateHttp(new Uri(myUrl));
request.ContentType = string.Format("multipart/form-data; boundary={0}", boundary);
request.UserAgent = "Mozilla/4.0 (Windows; U; Windows Vista;)";
request.Method = "POST";
request.UseDefaultCredentials = true;
request.BeginGetRequestStream(GetStream, request);
}
private void GetStream(IAsyncResult result)
{
try
{
HttpWebRequest request1 = (HttpWebRequest)result.AsyncState;
using (Stream postStream = request1.EndGetRequestStream(result))
{
int len = postBody.Length;
len += mainBody.Length;
len += endBody.Length;
byte[] postArray = new byte[len + 1];
Encoding.UTF8.GetBytes(postBody.ToString()).CopyTo(postArray, 0);
Encoding.UTF8.GetBytes(mainBody).CopyTo(postArray, postBody.Length);
Encoding.UTF8.GetBytes(endBody).CopyTo(postArray, postBody.Length + mainBody.Length);
postStream.Write(postArray, 0, postArray.Length);
}
}
「AllowWriteStreamBuffering」在WP7中不可用。我只能看到「AllowReadStreamBuffering」。 – Vaysage 2011-04-13 08:57:17
@Vaysage:啊......在這種情況下,您可能無法找到答案,直到您嘗試獲得回覆。鑑於你在編寫代碼中並沒有做很多工作,這是否是一種特殊的困難? – 2011-04-13 09:02:39
是的,我需要在最後發送一個零。你發佈的方法是最好的方式來做到這一點,我只會使用這種方法 – Vaysage 2011-04-13 09:07:25