通过Webservice 下载文件

服务器端:

 [WebMethod]
        public byte[] DownloadFile(string file)
        {
            System.IO.FileStream fs = null;
           if (System.IO.File.Exists(file))

           {
                try
                {
                    fs = System.IO.File.OpenRead(file);
                    int b1;
                    System.IO.MemoryStream tempStream = new System.IO.MemoryStream();
                    while ((b1 = fs.ReadByte()) != -1)
                    {
                        tempStream.WriteByte(((byte)b1));
                    }
                    return tempStream.ToArray();
                }
                catch (Exception ex)
                {
                    return new byte[0];
                }
                finally
                {
                    fs.Close();
                }
            }
            else
            {
                return new byte[0];
            }
        }
客户端:

        /// <summary>
        /// 从服务器上下载文件,未用
        /// </summary>
        /// <param name="str1">源文件:如“E:\\city.txt”</param>
        /// <param name="str2">目标文件:如@"d:\city.txt"</param>
        public static void DownFile(string str1, string str2)
        {

           CRMweb.WebService1SoapClient myWeb = new CRMweb.WebService1SoapClient();
            byte[] bs = myWeb.DownloadFile(str1);
            System.IO.FileStream stream = new System.IO.FileStream(str2, System.IO.FileMode.CreateNew);
            stream.Write(bs, 0, bs.Length);
            stream.Flush();
            stream.Close();
        }

 

您可以使用以下步骤在Android中使用WebService下载文件: 1.创建一个类来处理WebService请求 ``` public class WebServiceHandler { private static final String SOAP_ACTION = "http://tempuri.org/DownloadFile"; private static final String METHOD_NAME = "DownloadFile"; private static final String NAMESPACE = "http://tempuri.org/"; private static final String URL = "http://yourwebserviceurl"; public static void downloadFile(String fileName, String fileExtension) { SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); PropertyInfo propertyInfo = new PropertyInfo(); propertyInfo.setName("fileName"); propertyInfo.setValue(fileName); propertyInfo.setType(String.class); request.addProperty(propertyInfo); propertyInfo = new PropertyInfo(); propertyInfo.setName("fileExtension"); propertyInfo.setValue(fileExtension); propertyInfo.setType(String.class); request.addProperty(propertyInfo); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.dotNet = true; envelope.setOutputSoapObject(request); HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); try { androidHttpTransport.call(SOAP_ACTION, envelope); SoapPrimitive response = (SoapPrimitive) envelope.getResponse(); String fileData = response.toString(); // Save the file FileOutputStream fileOutputStream = new FileOutputStream(Environment.getExternalStorageDirectory() + "/" + fileName + "." + fileExtension); fileOutputStream.write(Base64.decode(fileData, Base64.NO_WRAP)); fileOutputStream.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 2.在Android应用程序中调用该方法 ``` WebServiceHandler.downloadFile("samplefile", "txt"); ``` 这将下载名为“samplefile.txt”的文件,并保存在设备的根目录中。 请注意,您需要替换“SOAP_ACTION”,“METHOD_NAME”,“NAMESPACE”和“URL”与您自己的WebService URL。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值