【.NET】使用WebClient简单的远程上传资源

简介:  

  由于访问量开始增大,服务器宽带不够用,将访问流量和文件流量都压在同一台服务器,每天都会死一次半次,需要用上CDN,所以文件都需要远程上传到文件服务器,在写上代码,和找了些文章来总结一下,主要使用:WebClient

  • 简单版的WebClient,属于System.Net,属于操作比较简单的请求类,默认是少了head,timeout属性,可以继承HttpWebRequest来实现。
  • 还有其他请求类库,如:HttpWebRequest,HttpClient;
  • 代码实现时,定义了3种情况,但最终还是要用了base64传送:
    • 1.由HttpContext.Current上传的请求资源;
    • 2.访问网络资源链接;
    • 3.Base64格式的资源上传;

代码实现:

//base64资源上传
public string ToServerBase(string postData)
{
    var webclient = new WebClient();
    webclient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
    //接受文件字符串
    //postData是"data="+HttpUtility.UrlEncode(Convert.ToBase64String(bytes));
    byte[] byteArray = Encoding.UTF8.GetBytes(postData);

    string url = "webapi远程接口";
    //发送返回结果
    byte[] buffer = webclient.UploadData(url, "POST", byteArray);

    return Encoding.UTF8.GetString(buffer);  
}

真的很简单,就用了UploadData像远程接口传送byte[]。

也可以换成HttpWebRequest,再GetRequest()到HttpWebResponse,返回Stream类型,上几篇有完整实例。

其实比较推荐是,用FromData来上传资源。

参考:https://www.cnblogs.com/MrZheng/p/11636254.html

猜你喜欢

转载自www.cnblogs.com/laokchen/p/12386833.html