手工发送HTTP请求主要是调用 System.Net的HttpWebResponse方法

手工发送HTTP的GET请 求:

C# code

/

向服务器发出申请

string strURL = "http://localhost/Play/CH1/Service1.asmx/doSearch?keyword=";

strURL +=this.textBox1.Text;

System.Net.HttpWebRequest request;

// 创建一个HTTP请求

request = (System.Net.HttpWebRequest)WebRequest.Create(strURL);

//request.Method="get";默认为“get”

/

//服务器对上面请求的返回结果。由于是web service,返回是xml文件,所以使用下面的方式接收显示

System.Net.HttpWebResponse response;

response = (System.Net.HttpWebResponse)request.GetResponse();

System.IO.Stream s;

s = response.GetResponseStream();

XmlTextReader Reader = new XmlTextReader(s);

Reader.MoveToContent();

string strValue = Reader.ReadInnerXml();

strValue = strValue.Replace("&lt;","<");

strValue = strValue.Replace("&gt;",">");

MessageBox.Show(strValue);

Reader.Close();

手工发送HTTP的POST请求

C# code

string strURL = "http://localhost/Play/CH1/Service1.asmx/doSearch";

System.Net.HttpWebRequest request;

request = (System.Net.HttpWebRequest)WebRequest.Create(strURL);

//Post请求方式

request.Method="POST";

// 内容类型

request.ContentType="application/x-www-form-urlencoded";

// 参数经过URL编码

string paraUrlCoded = System.Web.HttpUtility.UrlEncode("keyword");

paraUrlCoded += "=" + System.Web.HttpUtility.UrlEncode(this.textBox1.Text);

byte[] payload;

//将URL编码后的字符串转化为字节

payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded);

//设置请求的 ContentLength

request.ContentLength = payload.Length;

//获得请 求流

Stream writer = request.GetRequestStream();

//将请求参数写入流

writer.Write(payload,0,payload.Length);

// 关闭请求流

writer.Close();

/

接收相应

System.Net.HttpWebResponse response;

// 获得响应流

response = (System.Net.HttpWebResponse)request.GetResponse();

System.IO.Stream s;

s = response.GetResponseStream();

XmlTextReader Reader = new XmlTextReader(s);

Reader.MoveToContent();

string strValue = Reader.ReadInnerXml();

strValue = strValue.Replace("&lt;","<");

strValue = strValue.Replace("&gt;",">");

MessageBox.Show(strValue);

Reader.Close();

再如(一般网页的接收):

WebRequest request = WebRequest.Create("http://www.baidu.com/s?wd=张学友");
   WebResponse response = request.GetResponse();
   StreamReader reader = new StreamReader(response.GetResponseStream(),    Encoding.GetEncoding("gb2312"));

tb.Text = reader.ReadToEnd();

reader.Close();
   reader.Dispose();
   response.Close();

/

传送请求

Winform窗体中发送HTTP请求 手工发送HTTP请求主要是调用 System.Net的HttpWebResponse方法相关推荐

  1. 怎样在Winform窗体中嵌入Web浏览器

    背景 项目当中需要在Winform窗体中嵌入网页,虽然微软自带了WebBrowser控件,但是她是以IE模式运行的,兼容性实在太差,找了一圈发现有个叫CefSharp的家伙还不错,于是就拿来玩了一下. ...

  2. 【二次开发】将CATIA嵌入到Winform窗体中

    由于项目需要,我们需要将CATIA嵌入到我们的软件之中,要求在软件启动后,同时调用并启动CATIA软件,并能够屏蔽掉软件自身的菜单和按钮.通过在网上查阅资料,实现了这一功能. 调用并启动CATIA p ...

  3. WinForm窗体中如何在一个窗体中取到另一个窗体的值

    例如我们定义两窗体,Form1和Form2,如何在Form2中取到Form1中的一个值呢? 解决方法1: 在Form1 中定义一个成员变量,例如public string a = " &qu ...

  4. C#的委托事件在winform窗体中实现传值备忘

    用一个例子来说明吧,这样比较好明白一些. 就是打开主窗体,datagridview加载了一些数据,然后我们在打开的子窗体中,输入一些条件,让主窗体中的数据随着加载的条件来动态实现加载数据. 这就需要涉 ...

  5. C#操作数据库,将其查查出来的记录条数显示在winform窗体中的方法之一

    1 //1.数据库链接的基本操作(略) 2 //2.创建对象函数(关键部分) 3 sqlConn.Open(); 4 //初始化定义记录条数 5 int n = 0; 6 object obj = s ...

  6. C# :Winform窗体中文字滚动显示

    想要做到文字滚动显示,首先需要把文字写入Lable控件中,将Label控件的位置改变就可以实现文字的位置变换. 1.在窗体中添加Timer和Lable控件 2.编写代码 //滚动 Lable priv ...

  7. C#Winform窗体中传值

    在窗体Form2中定义公有属性Form2Value,获取和设置textBox1的文本值 并且还定义一个accept事件public string Form2Value { get { return t ...

  8. C# 中对WinForm窗体中的控件快速设置TableIndex次序

    点击"视图"--"Tab键顺序",然后便可设置. 参考文章 1. ssilspro,在vs2008中做winform程序的时,调整控件TableIndex顺序的 ...

  9. C# :Winform窗体中Enter键登录

    前言: 在登陆窗体时,按Enter回车键可以直接用户登录,更加方便便捷. 解决方案: 在窗体属性中找到AcceptButton,后面添加上按回车键就点击的按钮名称. AcceptButton: 窗体的 ...

最新文章

  1. 3.以太坊之秘钥文件
  2. Codeforces 1338E JYPnation (图论)
  3. wxWidgets:拖放概述
  4. 根据经纬度求最近点的三种解法java实现
  5. 获取spring里的bean
  6. 在bash中,如何检查字符串是否以某个值开头?
  7. Pytorch——Variable是什么?
  8. YOLO系列专题——Complex-YOLO
  9. [Erlang 0127] Term sharing in Erlang/OTP 上篇
  10. TP 打开 显示错误信息
  11. ARM给服务器厂商更多创新机会
  12. 台达plc用c语言编程软件,台达plc编程
  13. PSpice的安装及练习一
  14. CS229 Machine Learning 自学与答案
  15. 计算机视觉文献综述选题,机器视觉文献综述.doc
  16. 开关二极管的工作原理
  17. 0602 信用卡防盗刷学习总结
  18. stl文件用proe怎么打开_3dmax怎么导入stl文件?如何将proe的文件导入3dmax进行渲染?...
  19. 在Linux中部署集群(零基础速学!)
  20. 数据结构 期末复习主观题练习题(答案版)

热门文章

  1. 《Android游戏开发详解》——第3章,第3.1节构造方法
  2. Winform使用DevExpress的WaitDialogForm画面 z
  3. XML DOM 节点类型(Node Types)
  4. NTA高性能Flow负载均衡及其应用
  5. Nginx访问403异常问题处理
  6. yum的基本使用(命令+案列)
  7. react-native构建基本页面5---调用拍照摄像头
  8. 函数式编程 -- 函子(Functor)
  9. jquery ajax 跨域解决方案 - CORS
  10. 基于deepin-wine的windows软件打包deb安装包教程