C#post上传文件,post发送文件(Http Post),带其他参数

除了发送的文件主体之外,还能附加一些其他参数,例如本例中图片文件是主体,然后另外加了一个token参数,值为方法参数token,其他参数以此类推。

public static string HttpPost(string url, string filepath, string filename, string token)
{   
    string strResult;      
    try      
    {        
        FileStream fs = new FileStream(filepath, FileMode.Open, FileAccess.Read);        
        byte[] bytebuffer;        
        bytebuffer = new byte[fs.Length];        
        fs.Read(bytebuffer, 0, (int) fs.Length);        
        fs.Close();              
        string boundary = DateTime.Now.Ticks.ToString("X");        
        string Enter = "\r\n";        
        string strContent1 = "--" + boundary + Enter + "Content-Type: application/octet-stream" + Enter + "Content-Disposition: form-data; filename=\"" + "" + filename + "" + "\"; name=\"file\"" + Enter + Enter;        
        string strContent2 = Enter + "--" + boundary + Enter + "Content-Type: text/plain" + Enter + "Content-Disposition: form-data; name=\"token\"" + Enter + Enter + "" + token + "" + Enter + "--" + boundary + "--";        
        byte[] strContentByte1 = Encoding.UTF8.GetBytes(strContentByte1);
        byte[] strContentByte2 = Encoding.UTF8.GetBytes(strContentByte2);
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.Method = "POST";
        request.ContentType = "multipart/form-data;boundary=" + boundary;
        Stream myRequestStream = request.GetRequestStream();
        myRequestStream.Write(strContentByte1, 0,strContentByte1.Length);
        myRequestStream.Write(bytebuffer, 0, bytebuffer.Length);
        myRequestStream.Write(strContentByte2, 0, strContentByte2.Length);       
        HttpWebResponse response = (HttpWebResponse) request.GetResponse();        
        Stream streamReceive = response.GetResponseStream();        
        Encoding encoding = Encoding.UTF8;        
        StreamReader streamReader = new StreamReader(streamReceive, encoding);        
        strResult = streamReader.ReadToEnd();        
        streamReceive.Dispose();        
        streamReader.Dispose();        
        return strResult;      
    }      
    catch(Exception ex)      
    {        
        return ex.Message;
    }      
    return strResult;    
}

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿够钟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值