• 【.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

  • 相关阅读:
    jQuery:提交表单前判断表单是否被修改过
    jQuery multiselect的使用
    input[file]标签的accept=”image/*”属性响应很慢的解决办法
    Linux-read命令
    shell编程学习
    优化网站加载速度
    select下拉框选中问题
    QTableWidget class
    QLabel class
    QMainWindow class
  • 原文地址:https://www.cnblogs.com/laokchen/p/12386833.html
Copyright © 2020-2023  润新知