WebClient 数据传输

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WebClient 数据传输相关的知识,希望对你有一定的参考价值。

数据提交 post  ,get

public string WebClientPost(string PostData, string PostUrl, string Type)
  {
      string postString = PostData;
      byte[] postData = Encoding.UTF8.GetBytes(postString);//编码,尤其是汉字,事先要看下抓取网页的编码方式  
      string url = PostUrl;//地址  
      WebClient webClient = new WebClient();
      byte[] responseData = null;
      if (Type == "post")
      {
          webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");//采取POST方式必须加的header,如果改为GET方式的话就去掉这句话即可  
          responseData = webClient.UploadData(url, "POST", postData);//得到返回字符流  
      }
      else
      {
          responseData = webClient.UploadData(url, "GET", postData);//得到返回字符流  
      }
      string srcString = Encoding.UTF8.GetString(responseData);//解码 
      return srcString;
  }

文件解析

  1转为JObject

            string _Result = PostData(Appid, AppKey, imgSrc, "", "post");
            JObject jsonData = JObject.Parse(_Result);
            JArray jsonFace = jsonData.GetValue("face") as JArray;
            if (jsonFace == null)
            {
                msg = "err" + "," + "格式不对";
            }
            else
            {

                int height = 0;
                int width = 0;
                int center_x = 0;
                int center_y = 0;
                string sex = "";
                if (jsonFace != null && jsonFace.Count > 0)
                {
                    height = int.Parse(jsonFace[0]["position"]["height"].ToString());
                    width = int.Parse(jsonFace[0]["position"]["width"].ToString());
                    center_x = int.Parse(jsonFace[0]["position"]["center"]["x"].ToString());
                    center_y = int.Parse(jsonFace[0]["position"]["center"]["y"].ToString());
                    sex = jsonFace[0]["attribute"]["gender"].ToString();
                }
}

2   Dictionary

 Dictionary<string, object> objJson = JsonConvert.DeserializeObject<Dictionary<string, object>>(request);
            string state = objJson["state"].ToString();

 

 

数据下载

string imgSrc = context.Request.Form["ImgUrl"].ToString();  //服务器连接 

string FileDir = "/PublicResource/";
           string AppName = System.Configuration.ConfigurationManager.AppSettings["AppName"];
 
           if (!string.IsNullOrEmpty(AppName))
           {
               FileDir = "/PublicResource/" + AppName + "/";
           }
           Guid NewId = Guid.NewGuid();
           WebClient wc = new WebClient();
           string WXPath = context.Server.MapPath(FileDir + NewId.ToString() + ".jpg");
           wc.DownloadFile(imgSrc, WXPath);

 



以上是关于WebClient 数据传输的主要内容,如果未能解决你的问题,请参考以下文章

看代码网备份|利用WebClient|eKing.CmdDownLoadDbBakOper|实现定时拷贝数据库备份文件到文件服务器

将 WebClient 方法转换为 async / await

使用 WebClient 将输入单选类型的数据发布到特定 URL 的问题

c#利用WebClient和WebRequest获取网页源代码的比较

如何重新发出网络请求?我必须重新创建 Webclient 吗?

在 WebClient 中接受 Cookie?