C#利用WebService接口下载文件
1 WebTest.RtTfSimDataInterface test = new WebTest.RtTfSimDataInterface(); 2 //string strBasic = test.GetTfBasicDataInfo("admin", "123", "11", true); 3 string strRealTime = test.GetTfRealTimeDataInfo("admin", "11", "11", true); 4 //string strjson = HttpUtility.UrlDecode(HttpUtility.UrlEncode(str)); 5 6 WebTest.xsdDwgInfo dd = test.GetTfDwgBinaryInfo("admin", "admin", "1", 0); 7 8 ///////////////////////////////////////////////////////////////////////////// 9 int nReadSize = dd.mnReadSize;//读取文件大小 10 sbyte[] mySByte = new sbyte[nReadSize]; 11 mySByte = dd.mpBuffer; 12 bool bEof = dd.mbEof; 13 string strFileName = dd.mstrFileName;//文件名称 14 string strDwg_UpdateTime = dd.mstrDwgUpdateTime;//文件最后更新时间 15 //写数据 16 17 byte[] arr = new byte[nReadSize]; 18 Buffer.BlockCopy(mySByte, 0, arr, 0, nReadSize);//sbyte[]转byte[] 19 20 if (!File.Exists("E:\\a.dwg")) 21 { 22 FileStream FsCreate = new FileStream("E:\\a.dwg", FileMode.Create); 23 FsCreate.Close(); 24 } 25 FileStream fs = new FileStream("E:\\a.dwg", FileMode.Append, FileAccess.Write); 26 fs.Write(arr, 0, nReadSize);//写入byte[] 27 fs.Close(); 28 29 int nPosition = dd.mnReadSize;//读取文件位置 30 31 while (!bEof)//文件未下载完成,继续下载 32 { 33 dd = test.GetTfDwgBinaryInfo("admin", "admin", "1", nPosition); 34 nPosition += dd.mnReadSize; 35 bEof = dd.mbEof; 36 nReadSize = dd.mnReadSize; 37 sbyte[] sbyteTmp = new sbyte[nReadSize]; 38 sbyteTmp = dd.mpBuffer; 39 40 byte[] arrTmp = new byte[sbyteTmp.Length]; 41 Buffer.BlockCopy(sbyteTmp, 0, arrTmp, 0, sbyteTmp.Length); 42 43 if (!File.Exists("E:\\a.dwg")) 44 { 45 FileStream FsCreate = new FileStream("E:\\a.dwg", FileMode.Create); 46 FsCreate.Close(); 47 } FileStream fsTmp = new FileStream("E:\\a.dwg", FileMode.Append, FileAccess.Write); 48 fsTmp.Write(arrTmp, 0, nReadSize); 49 fsTmp.Close(); 50 }