1.     #region 后台模拟浏览器get/post请求
  2. /// <summary>
  3. /// 发送请求方式
  4. /// </summary>
  5. /// <param name="url">请求Url</param>
  6. /// <param name="para">请求参数</param>
  7. /// <param name="method">请求方式GET/POST</param>
  8. /// <returns></returns>
  9. public static string SendRequest(string url, string para, string method)
  10. {
  11. string strResult = "";
  12. if (url == null || url == "")
  13. return null;
  14. if (method == null || method == "")
  15. method = "GET";
  16. // GET方式
  17. if (method.ToUpper() == "GET")
  18. {
  19. try
  20. {
  21. System.Net.WebRequest wrq = System.Net.WebRequest.Create(url + para);
  22. wrq.Method = "GET";
  23. ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
  24. System.Net.WebResponse wrp = wrq.GetResponse();
  25. System.IO.StreamReader sr = new System.IO.StreamReader(wrp.GetResponseStream(), System.Text.Encoding.GetEncoding("utf-8"));
  26. strResult = sr.ReadToEnd();
  27. }
  28. catch (Exception ex)
  29. {
  30. return ex.Message;
  31. }
  32. }
  33. // POST方式
  34. if (method.ToUpper() == "POST")
  35. {
  36. && para.IndexOf()
  37. {
  38. para = para.Substring();
  39. }
  40. WebRequest req = WebRequest.Create(url);
  41. req.Method = "POST";
  42. req.ContentType = "application/x-www-form-urlencoded";
  43. ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
  44. StringBuilder UrlEncoded = new StringBuilder();
  45. Char[] reserved = { '?', '=', '&' };
  46. byte[] SomeBytes = null;
  47. if (para != null)
  48. {
  49. , j;
  50. while (i < para.Length)
  51. {
  52. j = para.IndexOfAny(reserved, i);
  53. )
  54. {
  55. UrlEncoded.Append(HttpUtility.UrlEncode(para.Substring(i, para.Length - i), System.Text.Encoding.GetEncoding("utf-8")));
  56. break;
  57. }
  58. UrlEncoded.Append(HttpUtility.UrlEncode(para.Substring(i, j - i), System.Text.Encoding.GetEncoding("utf-8")));
  59. UrlEncoded.Append(para.Substring(j, ));
  60. i = j + ;
  61. }
  62. SomeBytes = Encoding.Default.GetBytes(UrlEncoded.ToString());
  63. req.ContentLength = SomeBytes.Length;
  64. Stream newStream = req.GetRequestStream();
  65. newStream.Write(SomeBytes, , SomeBytes.Length);
  66. newStream.Close();
  67. }
  68. else
  69. {
  70. req.ContentLength = ;
  71. }
  72. try
  73. {
  74. WebResponse result = req.GetResponse();
  75. Stream ReceiveStream = result.GetResponseStream();
  76. Byte[] read = ];
  77. , );
  78. )
  79. {// 如果内容以 ANSI 代码页形式
  80. // Encoding encode = System.Text.Encoding.GetEncoding("shift-jis");
  81. Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
  82. strResult += encode.GetString(read, , bytes);
  83. bytes = ReceiveStream.Read(read, , );
  84. }
  85. return strResult;
  86. }
  87. catch (Exception ex)
  88. {
  89. return ex.Message;
  90. }
  91. }
  92. return strResult;
  93. }
  94. #endregion
  95.  
  96. public static string SendRequest(string url, string para)
  97. {
  98. return SendRequest(url, para, "GET");
  99. }

.net后台模拟浏览器get/post请求的更多相关文章

  1. http请求及模拟浏览器发送http请求

    /**    *测试新增图片   * @throws IOException    * @throws HttpException    * @throws SAXException    * @th ...

  2. java 模拟浏览器发送post请求

    java使用URLConnection发送post请求 /** * 向指定 URL 发送POST方法的请求 * * @param url * 发送请求的 URL * @param param * 请求 ...

  3. curl模拟浏览器进行phpQuery抓取数据

    报Warning: file_get_contents(http://www.dianping.com/shop/8042874) [function.file-get-contents]: fail ...

  4. 浏览器助手,请求拦截,后台模拟键鼠操作,页内嵌入JS

    http://www.cnblogs.com/ /// <summary>        /// 网页浏览器助手        /// 请求拦截,后台模拟键鼠操作,页内嵌入JS       ...

  5. 基于nodejs模拟浏览器post请求爬取json数据

    今天想爬取某网站的后台传来的数据,中间遇到了很多阻碍,花了2个小时才请求到数据,所以我在此总结了一些经验. 首先,放上我所爬取的请求地址http://api.chuchujie.com/api/?v= ...

  6. httpClient模拟浏览器发请求

    一.介绍 httpClient是Apache公司的一个子项目, 用来提高高效的.最新的.功能丰富的支持http协议的客户端编程工具包.完成可以模拟浏览器发起请求行为. 二.简单使用例子 : 模拟浏览器 ...

  7. 第五十九节,模拟浏览器请求Python结合html基本格式

    模拟浏览器请求Python结合html基本格式 用Python模拟一个客户端,结合打开一个HTML页面 创建客户端 #!/usr/bin/env python # -*- coding:utf8 -* ...

  8. 第四十节,requests模拟浏览器请求模块初识

    requests模拟浏览器请求模块初识  requests模拟浏览器请求模块属于第三方模块 源码下载地址http://docs.python-requests.org/zh_CN/latest/use ...

  9. HTTP协议简介详解 HTTP协议发展 原理 请求方法 响应状态码 请求头 请求首部 java模拟浏览器客户端服务端

    协议简介 协议,自然语言里面就是契约,也是双方或者多方经过协商达成的一致意见; 契约也即类似于合同,自然有甲方123...,乙方123...,哪些能做,哪些不能做; 通信协议,也即是双方通过网络通信必 ...

随机推荐

  1. 转帖:Python应用性能分析指南

    原文:A guide to analyzing Python performance While it’s not always the case that every Python program ...

  2. 【腾讯Bugly干货分享】揭秘:微信是如何用libco支撑8亿用户的

    本文来自于腾讯bugly开发者社区,未经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/58203cfcd149ba305c5ccf85 作者:Leiffy 导语 lib ...

  3. Wix 安装部署教程(十四) -- 多语言安装包之用户许可协议

    在上一篇中,留下了许可协议的问题,目前已经解决.感谢网友武全的指点! 问题 一般我们是用WixVariable 来设定许可协议.如下所示: <WixVariable Id="WixUI ...

  4. silverlighter下MVVM模式中利用Behavior和TargetedTriggerAction实现文本框的一些特效

    在silverlight一般开发模式中,给文本框添加一些事件是轻而易举的,然而MVVM开发模式中,想要给文本框添加一些事件并非那么容易,因为MVVM模式中,只有ICommand接口,而且也只有Butt ...

  5. [浅学] 1、Node.js尝试_安装&运行第一个helloworld

    官网:https://nodejs.org/ 介绍:Node.js® is a platform built on Chrome's JavaScript runtime for easily bui ...

  6. php做登录注册页面及加载

    //SQL注入攻击 //1.过滤用户的输入 //2.使用预处理语句 //3.写代码的时候尽量避免 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1. ...

  7. [读书笔记]C#学习笔记一: .Net Framwork

    前言: 一次偶然的机会  在园子里看到@Learning hard 出版的一本书: <<C#学习笔记>>, 然后买来 一直到现在读完, 感觉很不错, 适合入门, 书中内容是从C ...

  8. C#学习系列-.NET体系结构

    .NET框架概述 .NET 框架为.NET应用程序运行提供虚拟机环境,为.NET应用程序提供编译.运行.内存管理.垃圾回收.安全等服务.   .NET框架组成部分 1.公共语言运行时(Common L ...

  9. Mysql 事件(定时任务)

    mysql 创建任务(事件) 1.检查数据库事件是否开启,如果 event_scheduler 等于 NO表示开启 SELECT @@event_scheduler; SHOW VARIABLES L ...

  10. sql语句执行顺序

    首先来一张朋友传给我的图 FORM: 对FROM的左边的表和右边的表计算笛卡尔积.产生虚表VT1 ON: 对虚表VT1进行ON筛选,只有那些符合<join-condition>的行才会被记 ...