HttpWebRequest向远程地址Post文件

        /// <summary>
/// 上传文件到远程服务器
/// </summary>
/// <param name="url">远程服务器接收Api</param>
/// <param name="postStream">文件流</param>
/// <param name="contentType">内容类型默认application/octet-stream</param>
/// <returns></returns>
static public string PostFileByHttpWebRequest(string url, Stream postStream, string contentType = "application/octet-stream")
{
string result = string.Empty;
HttpWebRequest request = null;
try
{
ServicePointManager.DefaultConnectionLimit = int.MaxValue;
request = (HttpWebRequest)WebRequest.Create(url);
request.Timeout = ;
request.Method = "POST";
request.ContentType = contentType;
request.ContentLength = postStream.Length; using (Stream writer = request.GetRequestStream())
{
WriteTo(postStream, writer, postStream.Length);
}
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
{
result = reader.ReadToEnd();
}
}
}
catch (WebException ex)
{
request.Abort();
result = ex.Message.ToString();
}
catch (Exception ex)
{
request.Abort();
result = ex.Message.ToString();
}
finally
{
if (request != null)
{
request.Abort();
}
}
return result;
} static private long WriteTo(Stream orignStream, Stream destStream, long totalSize)
{
int BufferSize = * ; var buffer = new byte[BufferSize]; long alreadyRead = ;
while (alreadyRead < totalSize)
{
var readSize = orignStream.Read(buffer, , BufferSize);
if (readSize <= )
break; if (alreadyRead + readSize > totalSize)
readSize = (int)(totalSize - alreadyRead);
alreadyRead += readSize;
destStream.Write(buffer, , readSize);
}
destStream.Flush(); return alreadyRead;
}

C# HttpWebRequest向远程地址Post文件的更多相关文章

  1. C# HttpWebRequest请求远程地址获取返回消息

    HttpWebRequest请求远程地址获取返回消息 /// <summary> /// 请求远程Api获取响应返回字符串 /// </summary> /// <par ...

  2. java实现远程储存读取文件

    import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileN ...

  3. go 语言的库文件放在哪里?如何通过nginx代理后还能正确获取远程地址

    /usr/local/Cellar/go/1.5.1/libexec/src/ 他的RemoteAddr 是从哪里获取? func (c *conn) RemoteAddr() Addr { if ! ...

  4. phpcms—— 内容中的附件调用和添加远程地址的调用

    phpcms中几个地址调用的方法 1,CSS路径有{CSS_PATH}2,图片路径有{IMG_PATH}3,JS路径有{JS_PATH} 4,那么附件的路径如何调用,使用下面的方式可以得到附件的路径前 ...

  5. Window2003、xp远程备份数据库文件(xcopy+rar+pscp)

    Window2003.xp远程备份数据库文件 xcopy+rar+pscp .bat脚本 Eg: xcopy d:\dbtest\*.* d:\dbtemp\ /y D:\backup\Rar.exe ...

  6. 关于在git添加远程地址的过程中遇到的问题

    问题产生的过程 我根据菜鸟教程的步骤,做了如下操作: 1.打开安装文件夹中的git-bash程序 2.设置username和email 3.添加远程地址 结果如下: 之后通过百度知道要先git ini ...

  7. git项目远程地址修改后本地如何处理

    今天运维人员为了方便管理,将远程的项目地址给迁移了, 原来是 git@git.lalala.com:yuanlaide/happy.git 变成了 git@git.lalala.com:houlaid ...

  8. Delphi实例分析:远程传输数据和文件

    在Windows操作系统的平台上,WinSock是首选的网络编程接口,用于在网络上传输数据和交换信息,它构成了Windows操作系统进行网络编程的基础.对于编写网络应用程序来说,WinSock是一门非 ...

  9. 根据第三方提供的webservice地址获取文件信息

    import org.apache.axis.client.Call; import org.apache.axis.client.Service; import org.apache.axis.en ...

随机推荐

  1. 使用django uwsgi 导致磁盘满

    lsof |grep delete |sort -nrk 7|more kill 掉这些进程

  2. sql 同一张表查询不同数据合并之后关联查询

    SELECT t.articleId articleId, comments.`comments` parentComment, t.commentId commentsId, comments.`i ...

  3. LeetCode 279. 完全平方数(Perfect Squares)

    题目描述 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n.你需要让组成和的完全平方数的个数最少. 示例 1: 输入: n = 12 输出: 3 解释 ...

  4. C++ STL——map和multimap

    目录 一 map和multimap 注:原创不易,转载请务必注明原作者和出处,感谢支持! 一 map和multimap map相对于set的区别:map具有键值和实值,所有元素根据键值自动排序.pai ...

  5. Linux shell利用sed如何批量更改文件名详解[转载]

     需求背景: 目录A用来存放自动化的包生成的apk文件,现在开发修改了包名的 命名规则:环境名称(pro|uat)-release-日期-v版本号.apk 原来的是思路是通过正则表达式匹配新的包名,但 ...

  6. python之scrapy爬取jingdong招聘信息到mysql数据库

    1.创建工程 scrapy startproject jd 2.创建项目 scrapy genspider jingdong 3.安装pymysql pip install pymysql 4.set ...

  7. AOP获取方法注解实现动态切换数据源

    AOP获取方法注解实现动态切换数据源(以下方式尚未经过测试,仅提供思路) ------ 自定义一个用于切换数据源的注解: package com.xxx.annotation; import org. ...

  8. 自己的框架引入smarty的问题

    这段时间自己学着写PHP的MVC框架,想把Smarty 作为view类加载, 可是自动加载它的时候就出错. 无论改文件名,还是改变路径,都无法解决问题, 我搜索一下相关问题,发现是自动加载Smarty ...

  9. kubernetes发布tomcat服务,通过deployment,service布署(转)

    1.制作tomcat镜像 参考docker tomcat镜像制作 此处直接拉取 查看已有可镜像 先设置docker阿里源,即添加 "registry-mirrors": [&quo ...

  10. iView分页组件之分页使用

    基于表格简单示例 <template> <div style="margin:0 auto;"> <Table :loading="load ...