利用HttpWebRequest模拟提交图片

最近在做排量post工具, 以前做的都是提交文字 这次需要post图片过去,弄了半天终于弄好了;

 /// <summary>
/// Post发送图片数据
/// </summary>
public Queusresult requestData(string uri, string imgUrl, List<dataModes> ListMode, Encoding en, CookieContainer cook)
{
HttpWebRequest req = WebRequest.Create(uri) as HttpWebRequest;
req.Method = "POST";
req.ContentType = "application/octet-stream";
     //一些不需要的请求头 如果去掉不影响久尽量去掉
// req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
req.CookieContainer = cook;
req.AllowAutoRedirect = true;

     //可能post了其他参数需要跟图片拼接,我这里没有 所以注释了
//StringBuilder postData = new StringBuilder("");
//foreach (dataModes m in ListMode)
//{
// postData.AppendFormat("{0}={1}&", m.keys, m.values);
//}
//postData.AppendFormat("{0}={1}", "1", "1");
//Byte[] writData = ASCIIEncoding.ASCII.GetBytes(postData.ToString()); //读取图片
FileStream oStream = new FileStream(imgUrl, FileMode.Open, FileAccess.Read);
BinaryReader oReader = new BinaryReader(oStream);
Byte[] imgData = oReader.ReadBytes(Convert.ToInt32(oStream.Length)); //byte[] data3 = new byte[writData.Length + imgData.Length];
//System.Array.Copy(writData, 0, data3, 0, writData.Length);
//System.Array.Copy(imgData, 0, data3, writData.Length, imgData.Length); req.ContentLength = imgData.Length;
Stream stream = req.GetRequestStream();
stream.Write(imgData, 0, imgData.Length);
stream.Close(); HttpWebResponse response = req.GetResponse() as HttpWebResponse;
Stream str = response.GetResponseStream();
string html = "";
using (StreamReader strRead = new StreamReader(str, en))
{
req.CookieContainer.Add(response.Cookies);
html = strRead.ReadToEnd();
}
Queusresult q = new Queusresult();
q.html = html;
q.cookie = cook;
return q;

测试成功,如果有不懂的可以加加群交流 .Net技术交流区  86594082

利用HttpWebRequest模拟提交图片的更多相关文章

  1. 利用HttpWebRequest模拟表单提交 JQuery 的一个轻量级 Guid 字符串拓展插件. 轻量级Config文件AppSettings节点编辑帮助类

    利用HttpWebRequest模拟表单提交   1 using System; 2 using System.Collections.Specialized; 3 using System.IO; ...

  2. 利用HttpWebRequest模拟表单提交

    using System; using System.Collections.Specialized; using System.IO; using System.Net; using System. ...

  3. C#后台HttpWebRequest模拟跨域Ajax请求,注册Windows服务到服务器上

    项目需求,暂且叫A.B公司吧.我们公司需要从A公司哪里读取机器上的数据,放到我们数据库中.然后再将数据库中存的数据,提供一个接口,B公司来调用,大概这个意思. 好了,言归正传.这个是之前做好的界面,用 ...

  4. C# 利用 HttpWebRequest 和 HttpWebResponse 模拟登录有验证码的网站

    原文:C# 利用 HttpWebRequest 和 HttpWebResponse 模拟登录有验证码的网站 我们经常会碰到需要程序模拟登录一个网站,那如果网站需要填写验证码的要怎样模拟登录呢?这篇文章 ...

  5. 利用HttpWebRequest和HttpWebResponse获取Cookie并实现模拟登录

    利用HttpWebRequest和HttpWebResponse获取Cookie并实现模拟登录 tring cookie = response.Headers.Get("Set-Cookie ...

  6. 利用HttpWebRequest实现实体对象的上传

    一 简介 HttpWebRequest和HttpWebResponse类是用于发送和接收HTTP数据的最好选择.它们支持一系列有用的属性.这两个类位 于System.Net命名空间,默认情况下这个类对 ...

  7. 利用fiddler模拟发送json数据的post请求

    fiddler是调试利器,有许多好用的功能,这里简单的介绍一下利用fiddler模拟发送post请求的例子 先简单介绍一下失败的例子,最后给出正确的方法

  8. 利用HttpWebRequest访问WebApi

    WebApi现在越来越流行,下面给出利用HttpWebRequest访问WebApi的工具方法: 1.利用基准URL和参数字典生成完整URL /// <summary> /// 生成URL ...

  9. HttpWebRequest模拟c#网站登录

     用户名 密码 模拟登录asp.net开发的网站 关心两个问题:通过控件属性获取数据.响应事件. 上面是一个普通的asp.net表单.输入用户名.密码后,点击按钮将会进入各自绑定的后台函数,而不仅仅是 ...

随机推荐

  1. ionic-CSS:ionic 表单和输入框

    ylbtech-ionic-CSS:ionic 表单和输入框 1.返回顶部 1. ionic 表单和输入框 list 类同样可以用于 input 元素.item-input 和 item 类指定了文本 ...

  2. iOS之NSArray数组排序

    一.数组遍历 除了常用的for和for-in遍历外,系统还提供了三种枚举遍历,对于大量的数据遍历可以使用下列三个方法. - (void)enumerateObjectsUsingBlock:(void ...

  3. The packaging for this project did not assign a file to the build artifact

    当进行mvn install时,遇到以下错误 The packaging for this project did not assign a file to the build artifact 在网 ...

  4. RCC, Reset and Clock Control

  5. LightOJ-1253-Misere Nim-nim博弈

    Alice and Bob are playing game of Misère Nim. Misère Nim is a game playing on k piles of stones, eac ...

  6. sql2000行转列 转过来的测试完也不知那个网站去哪了 没法写出处了

    ALTER procedure dbo.CommonRowToCol ) as begin --必须包含colname列和result列(不区分大小写), --除colname列和result列 其余 ...

  7. 网页布局WEB标准的HTML结构化

    您正在学习WEB标准CSS网页布局吗?是不是还不能完全掌握纯CSS布局?通常有两种需要您特别注意: 第一种可能是你还没有理解CSS处理页面的原理.在你考虑你的页面整体表现效果前,你应当先考虑内容的语义 ...

  8. 【2-SAT】[JSOI2010]满汉全席

    感觉方法和题解差不多,但是题解写的好烦啊...也不是烦,就是很复杂 这里建议开一个数组表示当前这个点选或者不选的编号,这样之后自己理思路也会清楚一点 然而我调了一个小时才发现我是Tarjan写错了.. ...

  9. ECharts (mark)

    首页 文档 下载 实例 社区 工具 关于 2.0 EN ECharts 特性 特性 丰富的可视化类型 多种数据格式无需转换直接使用 千万数据的前端展现 移动端优化 多渲染方案,跨平台使用! 深度的交互 ...

  10. ipsec原理(转载)

    IPSec VPN是目前VPN技术中点击率非常高的一种技术,同时提供VPN和信息加密两项技术,这一期专栏就来介绍一下IPSec VPN的原理.IPSec VPN应用场景 IPSec VPN的应用场景分 ...