C#模拟http 发送post或get请求的简单实例

 更新时间:2016年06月07日 10:57:43   投稿:jingxian  
下面小编就为大家带来一篇C#模拟http 发送post或get请求的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
private string HttpPost(string Url, string postDataStr) 
    { 
      HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); 
      request.Method = "POST"; 
      request.ContentType = "application/x-www-form-urlencoded"; 
      request.ContentLength = Encoding.UTF8.GetByteCount(postDataStr); 
      request.CookieContainer = cookie; 
      Stream myRequestStream = request.GetRequestStream(); 
      StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312")); 
      myStreamWriter.Write(postDataStr); 
      myStreamWriter.Close(); 
 
      HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
 
      response.Cookies = cookie.GetCookies(response.ResponseUri); 
      Stream myResponseStream = response.GetResponseStream(); 
      StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8")); 
      string retString = myStreamReader.ReadToEnd(); 
      myStreamReader.Close(); 
      myResponseStream.Close(); 
 
      return retString; 
    } 
 
    public string HttpGet(string Url, string postDataStr) 
    { 
      HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url + (postDataStr == "" ? "" : "?") + postDataStr); 
      request.Method = "GET"; 
      request.ContentType = "text/html;charset=UTF-8"; 
 
      HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
      Stream myResponseStream = response.GetResponseStream(); 
      StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8")); 
      string retString = myStreamReader.ReadToEnd(); 
      myStreamReader.Close(); 
      myResponseStream.Close(); 
 
      return retString; 
    }

在post的时候有时也用的到cookie,像登录163发邮件时候就需要发送cookie,所以在外部一个cookie属性随时保存 CookieContainer cookie = new CookieContainer();

注意:有时候请求会重定向,但我们就需要从重定向url获取东西,像QQ登录成功后获取sid,但上面的会自动根据重定向地址跳转。我们可以用:

request.AllowAutoRedirect = false;设置重定向禁用,你就可以从headers的Location属性中获取重定向地址

以上这篇C#模拟http 发送post或get请求的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • C#线性渐变画刷LinearGradientBrush用法实例

    C#线性渐变画刷LinearGradientBrush用法实例

    这篇文章主要介绍了C#线性渐变画刷LinearGradientBrush用法,实例分析了线性渐变画刷LinearGradientBrush的相关使用技巧,需要的朋友可以参考下
    2015-06-06
  • C#多线程开发实战记录之线程基础

    C#多线程开发实战记录之线程基础

    线程是一个独立的运行单元,每个进程内部有多个线程,每个线程可以各自同时执行指令,每个线程有自己独立的栈,但是与进程内的其他线程共享内存,这篇文章主要给大家介绍了关于C#多线程开发实战记录之线程基础的相关资料,需要的朋友可以参考下
    2021-09-09
  • C# WinForm窗体编程中处理数字的正确操作方法

    C# WinForm窗体编程中处理数字的正确操作方法

    这篇文章主要介绍了C# WinForm窗体编程中处理数字的正确操作方法,本文给出了正确示例,并解释了为什么要这么做,需要的朋友可以参考下
    2014-08-08
  • C#调用WinRar执行rar、zip压缩的方法

    C#调用WinRar执行rar、zip压缩的方法

    这篇文章主要介绍了C#调用WinRar执行rar、zip压缩的方法,涉及C#针对winrar的判断与调用技巧,需要的朋友可以参考下
    2015-05-05
  • C#对WPF数据绑定的菜单插入Seperator分隔

    C#对WPF数据绑定的菜单插入Seperator分隔

    这篇文章介绍了C#对WPF数据绑定的菜单插入Seperator分隔的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • Unity实现物体沿自身的任意轴向旋转

    Unity实现物体沿自身的任意轴向旋转

    这篇文章主要为大家详细介绍了Unity实现物体沿自身的任意轴向旋转,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-01-01
  • C#使用RenderControl将GridView控件导出到EXCEL的方法

    C#使用RenderControl将GridView控件导出到EXCEL的方法

    这篇文章主要介绍了C#使用RenderControl将GridView控件导出到EXCEL的方法,是C#应用程序设计中非常实用的一个功能,需要的朋友可以参考下
    2014-08-08
  • Winform中如何跨线程访问UI元素

    Winform中如何跨线程访问UI元素

    这篇文章主要介绍了Winform中如何跨线程访问UI元素,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2020-10-10
  • Unity实现场景漫游相机

    Unity实现场景漫游相机

    这篇文章主要为大家详细介绍了Unity实现场景漫游相机,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-10-10
  • C#常用正则验证函数示例

    C#常用正则验证函数示例

    这篇文章主要介绍了C#常用正则验证函数,举例分析了C#针对IP验证、价格验证及正整数验证的相关操作技巧,需要的朋友可以参考下
    2017-01-01

最新评论