C#基于HttpWebRequest实现发送HTTP请求的方法分析

 更新时间:2019年02月12日 10:35:06   作者:啊ten  
这篇文章主要介绍了C#基于HttpWebRequest实现发送HTTP请求的方法,结合实例形式分析了C#使用HttpWebRequest类与System.IO类实现发送HTTP请求相关操作技巧与注意事项,需要的朋友可以参考下

本文实例讲述了C#基于HttpWebRequest实现发送HTTP请求的方法。分享给大家供大家参考,具体如下:

调用第三方API的时候要用到HttpWebRequest类发送HTTP请求,网上查阅一番后大致了解了该类的用法,现记录如下。

首先引入HttpWebRequest类,System.IO

using HttpWebRequest
using System.IO

GET请求

/// <summary>
/// 发送GET请求
/// </summary>
/// <param name="url">请求URL,如果需要传参,在URL末尾加上“?+参数名=参数值”即可</param>
/// <returns></returns>
static string HttpGet(string url)
{
  //创建
  HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);
  //设置请求方法
  httpWebRequest.Method = "GET";
  //请求超时时间
  httpWebRequest.Timeout = 20000;
  //发送请求
  HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
  //利用Stream流读取返回数据
  StreamReader streamReader = new StreamReader(httpWebResponse.GetResponseStream(), Encoding.UTF8);
  //获得最终数据,一般是json
  string responseContent = streamReader.ReadToEnd();
  streamReader.Close();
  httpWebResponse.Close();
  return responseContent;
}

POST请求

/// <summary>
/// 发送POST请求
/// </summary>
/// <param name="url">请求URL</param>
/// <param name="data">请求参数</param>
/// <returns></returns>
static string HttpPost(string url, string data)
{
  HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);
  //字符串转换为字节码
  byte[] bs = Encoding.UTF8.GetBytes(data);
  //参数类型,这里是json类型
  //还有别的类型如"application/x-www-form-urlencoded",不过我没用过(逃
  httpWebRequest.ContentType = "application/json";
  //参数数据长度
  httpWebRequest.ContentLength = bs.Length;
  //设置请求类型
  httpWebRequest.Method = "POST";
  //设置超时时间
  httpWebRequest.Timeout = 20000;
  //将参数写入请求地址中
  httpWebRequest.GetRequestStream().Write(bs, 0, bs.Length);
  //发送请求
  HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
  //读取返回数据
  StreamReader streamReader = new StreamReader(httpWebResponse.GetResponseStream(), Encoding.UTF8);
  string responseContent = streamReader.ReadToEnd();
  streamReader.Close();
  httpWebResponse.Close();
  httpWebRequest.Abort();
  return responseContent;
}

GET请求就很简单易懂啦,如果需要传参,在URL末尾加上“?+参数名=参数值”即可,需要注意的是POST请求。

POST请求参数类型有多个,设置不正确会发生错误的,一般第三方接口都是以JSON交换数据,按我上面那样写就没错了。请求中的参数设置涉及到了Stream流的一些知识点

httpWebRequest.GetRequestStream().Write(bs, 0, bs.Length);

这一行的意思是将“bs”从Request的“0”位置中开始写入,长度为“bs.Length”,说白了就是把参数数据加入到请求数据中。

更多关于C#相关内容感兴趣的读者可查看本站专题:《C#程序设计之线程使用技巧总结》、《C#窗体操作技巧汇总》、《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#数组操作技巧总结》及《C#面向对象程序设计入门教程

希望本文所述对大家C#程序设计有所帮助。

相关文章

  • c#中WebService的介绍及调用方式小结

    c#中WebService的介绍及调用方式小结

    这篇文章主要给大家介绍了关于c#中的WebService及其调用方式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • C# Page用于各页面继承功能实例

    C# Page用于各页面继承功能实例

    这篇文章主要介绍了C# Page用于各页面继承功能实例,包含了常见的页面视图、数据缓存、数据库操作等技巧,需要的朋友可以参考下
    2014-10-10
  • c# 委托的本质是什么

    c# 委托的本质是什么

    这篇文章主要介绍了c# 委托的本质是什么,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • C#实现UDP打洞的示例代码

    C#实现UDP打洞的示例代码

    这篇文章主要为大家详细介绍了C#中实现UDP打洞的相关知识,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以参考一下
    2024-01-01
  • 基于C#实现语音识别功能详解

    基于C#实现语音识别功能详解

    在.NET4.0中,可以借助System.Speech组件让电脑来识别我们的声音。本文将利用该组件实现语音识别功能,文中实现过程讲解详细,需要的可以参考一下
    2022-04-04
  • C#中定时任务被阻塞问题的解决方法

    C#中定时任务被阻塞问题的解决方法

    这篇文章主要给大家介绍了关于C#中定时任务被阻塞问题的解决方法,文中通过示例代码介绍的非常详细,对大家学习或者使用c#具有一定的参考学习价值,需要的朋友可以参考下
    2021-11-11
  • C#使用Region对图形区域构造和填充的方法

    C#使用Region对图形区域构造和填充的方法

    这篇文章主要介绍了C#使用Region对图形区域构造和填充的方法,实例分析了Region类图形操作的相关技巧,需要的朋友可以参考下
    2015-06-06
  • C#使用Winform编写一个图片预览器管理

    C#使用Winform编写一个图片预览器管理

    这篇文章主要为大家详细介绍了C#如何使用Winform编写一个通用图片预览器管理,包含滚轮放大缩小,剪切,下一页,方向变化等,需要的可以参考下
    2024-02-02
  • C#通用邮件发送类分享

    C#通用邮件发送类分享

    这篇文章主要介绍了C#通用邮件发送类分享,本文类比较特别的一点是涵盖了国内大多数的常用邮箱,需要的朋友可以参考下
    2015-05-05
  • 基于C#动态生成带参数的小程序二维码

    基于C#动态生成带参数的小程序二维码

    在微信小程序管理后台,我们可以生成下载标准的小程序二维码,提供主程序入口功能,在实际应用开发中,小程序二维码是可以携带参数的,可以动态进行生成,本文小编就给大家介绍一下如何基于C#动态生成带参数的小程序二维码,感兴趣的朋友可以参考下
    2023-12-12

最新评论