• WP7 如何上传文件并获取服务器端回复【z】


    HttpWebRequest类代码:

    /// <summary>
     /// 发送内容
     /// </summary>
     private byte[] bSendingFile = null;
     
      
     
     using (IsolatedStorageFileStream sendingZipStream2 = new IsolatedStorageFileStream(strZipFolderName + "/" + strZipFileName, FileMode.Open, isoStorage))
     {
       try
       {
         // 要上传的文件 
         bSendingFile = new byte[sendingZipStream2.Length];
         sendingZipStream2.Read(bSendingFile, 0, bSendingFile.Length);
     
         // 根据uri创建HttpWebRequest对象 
         HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create(new Uri(F3StaticResource.SendNMSUrl, UriKind.Absolute));
         httpReq.Method = "POST";
         httpReq.ContentType = "multipart/form-data;";
     
         IAsyncResult asyncResult = httpReq.BeginGetRequestStream(new AsyncCallback(RequestStreamCallback), httpReq);
       }
       catch(Exception ex)
       {
         String strError = ex.ToString();
       }
     
     }
     
      
     
     /// <summary>
     /// 返回用于将数据写入Stream,写入数据,并发送
     /// </summary>
     /// <param name="result"></param>
     private void RequestStreamCallback(IAsyncResult result)
     {
       HttpWebRequest request = result.AsyncState as HttpWebRequest;
     
       // 返回用于将数据写入某 URI 资源的 Stream
       Stream requestStream = request.EndGetRequestStream(result);
     
       requestStream.Write(bSendingFile, 0, bSendingFile.Length);
       requestStream.Flush();
       requestStream.Close();
     
       request.BeginGetResponse(new AsyncCallback(ResponseCallback), request);
     }
     
     /// <summary>
     /// 获取最终的返回结果
     /// </summary>
     /// <param name="result"></param>
     private void ResponseCallback(IAsyncResult result)
     {
       try
       {
         HttpWebRequest request = result.AsyncState as HttpWebRequest;
         WebResponse response = request.EndGetResponse(result) as HttpWebResponse;
     
         if (response != null)
         {
           Stream responseStream = response.GetResponseStream();
           using (StreamReader streamReader = new StreamReader(responseStream))
           {
             String strResponese = streamReader.ReadToEnd();//返回内容
     
           }
     
         }
       }
       catch (Exception ex)
       {
         String strError = ex.ToString();
       }
     }
  • 相关阅读:
    Redis系列(八)--缓存穿透、雪崩、更新策略
    Vue在单独引入js文件中使用ElementUI的组件
    解读浮动闭合最佳方案:clearfix
    JS replace()方法替换变量(可以对变量进行全文替换)
    Django media的设置
    使用EventBus实现兄弟组件之间的通信
    component: resolve => require(['../pages/home.vue'], resolve)
    vue中使用localStorage存储信息
    使用vue-router beforEach实现判断用户登录跳转路由筛选功能
    ES6使用常量做为函数名
  • 原文地址:https://www.cnblogs.com/Yukang1989/p/2891777.html
Copyright © 2020-2023  润新知