最大只能收到3838个字节,这个范围之内都能收到完整数据,大于这个范围也能收到同样大小的文件但3838个字节之后的内容为空,很纠结,望各位大侠出手相助:
(没有专家分,很抱歉,望不吝赐教)
这是实现采用http向服务器发信息并得到相应数据的代码:
1 public Stream send_Msg_0(string str)
2 {
3 send_Str = str;
4
5 HttpWebRequest myHttpReq = (HttpWebRequest)WebRequest.Create(str_url);
6 myHttpReq.ContentType = "application/x-www-form-urlencoded";
7
8 myHttpReq.Method = "POST";
9 myHttpReq.BeginGetRequestStream(new AsyncCallback(PostCallBack), myHttpReq);
10
11 m_object.WaitOne();
12 HttpWebResponse myHttpRes = (HttpWebResponse)myHttpReq.GetResponse();
13 Stream myStream = myHttpRes.GetResponseStream();
14
15 return myStream;
16 }
17
18 private void PostCallBack(IAsyncResult asy)
19 {
20 HttpWebRequest objReq = (HttpWebRequest)asy.AsyncState;
21 Stream obj_Stream = objReq.EndGetRequestStream(asy);
22
23 byte[] send_Msg_Arr = Encoding.Default.GetBytes(send_Str);
24
25 obj_Stream.Write(send_Msg_Arr, 0, send_Msg_Arr.Length);
26 obj_Stream.Close();
27 m_object.Set();
28 }
是否 ContentLength没有设置,设置正确的HTTP头信息,参考
http://social.msdn.microsoft.com/Forums/en/netfxnetcom/thread/c8d62d9c-925d-43f9-9a36-c0546f028f05
当每次读取数据的时候,它不一定是完全读出来的,有时候只是读了一半,你看看获取下来的byte[]前面和服务器上的一样,后面的全是0,就是楼主说的这种情况,循环读吧,直到所有的数据都读完。应该是这样!