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

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请求的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索get请求
模拟POST
c站、c语言、cf、ch、c罗,以便于您获取更多的相关知识。

时间: 2024-08-03 09:14:52

C#模拟http 发送post或get请求的简单实例_C#教程的相关文章

使用C#发送Http请求实现模拟登陆实例_C#教程

模拟登陆的原理很简单,就是发送一个Http 请求服务器获得响应,然后客户端获取到cookie即可实现模拟登陆,比如一些抢票软件的原理无非也是这样模拟客户端的cookie 然后发送请求去抢票,然后12306 本文将演示如何用C# 来实现模拟登陆的,推荐一款工具Fiddler,这是一款监听http 请求的利器.废话不多说,我就以博客园为例来实现模拟登陆.首先我登陆博客园 http://passport.cnblogs.com/login.aspx 输入用户名和密码点登陆 就会看到Fiddler 上的

在WinForm中发送HTTP请求的实现方法_C#教程

如何在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 =

C#使用系统方法发送异步邮件完整实例_C#教程

本文实例讲述了C#使用系统方法发送异步邮件.分享给大家供大家参考,具体如下: 项目背景: 最近在对几年前的一个项目进行重构,发现发送邮件功能需要一定的时间来处理,而由于发送是同步的因此导致在发送邮件时无法执行后续的操作 实际上发送邮件后只需要将发送结果写入系统日志即可对其他业务没有任何影响,因此决定将发送邮件操作更改为异步的 由于使用的是C#的邮件类库,而C#本身已经提供了异步发送的功能即只需要将Send方法更改为SendAsync即可,更改方法名并不难但发送后再写入日志就有点难了 因为项目中发

工具-Jsoup能够模拟浏览器发送表单请求吗?应该怎么做?

问题描述 Jsoup能够模拟浏览器发送表单请求吗?应该怎么做? 上图是chrome开发者工具捕获到浏览器发送的请求信息 jsoup通过把cookie信息添加到header()发送出去登录一些网站.那么发送表单是不是应该也是能够做到的,用post()?那应该怎么写代码,,或者有其他方法的能给点思路看看吗? 我最终目的就是能用Java回复一些帖子就好.

服务器 xmpp 协议-服务器如何模拟或绕过客户端的xmpp请求?

问题描述 服务器如何模拟或绕过客户端的xmpp请求? 请各位大神指点一二 客户端通过向服务器发送http请求和xmpp请求来登陆验证,目前可以完成http请求与应答,但是没有搭建xmpp服务器,想请教各位大神有没有办法在不搭建xmpp服务器的情况下响应客户端的请求,或者绕过客户端的xmpp请求 求指点...........

java发送HttpClient请求及接收请求结果过程的简单实例_java

一. 1.写一个HttpRequestUtils工具类,包括post请求和get请求 package com.brainlong.framework.util.httpclient; import net.sf.json.JSONObject; import org.apache.commons.httpclient.HttpStatus; import org.apache.http.HttpResponse; import org.apache.http.client.methods.Htt

python使用urllib2实现发送带cookie的请求

本文实例讲述了python使用urllib2实现发送带cookie的请求.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 import urllib2 opener = urllib2.build_opener() opener.addheaders.append(('Cookie','cookiename=cookievalue')) f = opener.open(<A href="http://example.com/">http://example.c

Android发送GET与POST请求的DEMO详解_Android

4.0后网络访问必须单独起一个子线程访问,否则无法运行,这里有一个发送请求的工具类GetPostUtil 复制代码 代码如下: public class GetPostUtil{ /**  * 向指定URL发送GET方法的请求  *   * @param url  *            发送请求的URL  * @param params  *            请求参数,请求参数应该是name1=value1&name2=value2的形式.  * @return URL所代表远程资源的

iOS开发网络篇—发送GET和POST请求(使用NSURLSession)

说明: 1)该文主要介绍如何使用NSURLSession来发送GET请求和POST请求 2)本文将不再讲解NSURLConnection的使用,如有需要了解NSURLConnection如何发送请求. 详细信息,请参考:http://www.cnblogs.com/wendingding/p/3813706.html 3)本文示例代码发送的请求均为http请求,已经对info.plist文件进行配置. 如何配置,请参考:https://github.com/HanGangAndHanMeimei