在WinForm中发送HTTP请求的实现方法

作者:jingxian 时间:2023-01-28 10:47:35 

如何在WinForm中请求发送HTTP

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

手工发送HTTP的GET请求:


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";
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请求


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();
标签:winform,http,请求
0
投稿

猜你喜欢

  • java8新特性将List中按指定属性排序过滤重复数据的方法

    2023-06-16 17:57:42
  • HttpClient 请求 URL字符集转码问题

    2022-11-20 17:33:07
  • springcloud整合seata的实现代码

    2022-04-26 23:49:49
  • java多次嵌套循环查询数据库导致代码中数据处理慢的解决

    2023-10-28 22:17:50
  • Spring实战之方法级别缓存用法示例

    2022-10-20 02:00:32
  • C# Winform中如何绘制动画示例详解

    2022-03-28 13:26:26
  • JFinal使用ajaxfileupload实现图片上传及预览

    2023-08-05 08:30:48
  • C语言 auto和register关键字

    2021-11-03 02:40:54
  • Android之沉浸式状态栏的实现方法、状态栏透明

    2022-01-02 17:49:21
  • C#实现单例模式的6种方法小结

    2023-09-13 21:02:57
  • Spring Boot 搭建 ELK正确看日志的配置流程

    2022-08-28 17:13:46
  • 详解Android的两种事件处理机制

    2023-10-05 23:37:20
  • C#多态的三种实现方式(小结)

    2022-12-29 18:10:57
  • C# 读写XML(代码分享)

    2022-11-05 15:28:10
  • Java编程用栈来求解汉诺塔问题的代码实例(非递归)

    2023-01-13 21:41:25
  • C#过滤DataTable中空数据和重复数据的示例代码

    2022-03-15 19:33:45
  • 深入C# 内存管理以及优化的方法详解

    2021-10-24 14:24:03
  • Java C++ 算法题解leetcode1608特殊数组特征值

    2023-05-21 21:09:01
  • 一文详解Java中Stream流的使用

    2021-08-23 11:54:51
  • 对指定的网页进行截图的效果 C#版

    2022-07-04 03:14:18
  • asp之家 软件编程 m.aspxhome.com