C#模拟Http请求

WinForm 发送Http请求

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Web;

namespace DingTest.Utility.Tools
{
    public class HttpHelper
    {
        /// <summary>
        /// Get请求模式
        /// </summary>
        /// <param name="urlString">请求的URL</param>
        /// <returns></returns>
        public static string Get(string urlString)
        {
            //定义局部变量
            HttpWebRequest httpWebRequest = null;
            HttpWebResponse httpWebRespones = null;
            Stream stream = null;
            string htmlString = string.Empty;

            //请求页面
            try
            {
                httpWebRequest = WebRequest.Create(urlString) as HttpWebRequest;
            }
            //处理异常
            catch (Exception ex)
            {
                throw new Exception("建立页面请求时发生错误!", ex);
            }
            httpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; Maxthon 2.0)";
            //获取服务器的返回信息
            try
            {
                httpWebRespones = (HttpWebResponse)httpWebRequest.GetResponse();
                stream = httpWebRespones.GetResponseStream();
            }
            //处理异常
            catch (Exception ex)
            {
                throw new Exception("接受服务器返回页面时发生错误!", ex);
            }
            StreamReader streamReader = new StreamReader(stream, Encoding.UTF8);
            //读取返回页面
            try
            {
                htmlString = streamReader.ReadToEnd();
            }
            //处理异常
            catch (Exception ex)
            {
                throw new Exception("读取页面数据时发生错误!", ex);
            }
            //释放资源返回结果
            streamReader.Close();
            stream.Close();
            return htmlString;
        }

        /// <summary>
        /// Post请求模式
        /// </summary>
        /// <param name="url">请求的URL</param>
        /// <param name="param">请求的参数Json</param>
        /// <returns></returns>
        public static string Post(string url, string param)
        {
            string strURL = url;
            System.Net.HttpWebRequest request;
            request = (System.Net.HttpWebRequest)WebRequest.Create(strURL);
            request.Method = "POST";
            request.ContentType = "application/json;charset=UTF-8";
            string paraUrlCoded = param;
            byte[] payload;
            payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded);
            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();
            string StrDate = "";
            string strValue = "";
            StreamReader Reader = new StreamReader(s, Encoding.UTF8);
            while ((StrDate = Reader.ReadLine()) != null)
            {
                strValue += StrDate + "\r\n";
            }
            return strValue;
        }
    }
}
时间: 2024-11-05 22:32:34

C#模拟Http请求的相关文章

php模拟post请求发送文件

由于项目需要,需要本地服务器接收数据后,再将数据转发到另外一台服务器上,故要用到模拟post请求发送数据,当然数据中也包含文件流. curl是php比较常用的方式之一,一般代码如下: $params1 = "test"; $params2 = "@".$absolute_path;//如果是文件 则参数为"@"+绝对路径 $post_data = array( 'params1' => $params1, 'params2' => $

PHP+SOCKET 模拟HTTP请求

HTTP消息结构 客户端请求包括四部份:请求行(状态行).请求头.空行.请求主体(数据),如下图: 服务端响应包括四部份:响应行(状态行).响应头.空行.响应主体(数据),如图: HTTP请求方法: POST .GET  .HEADE.  PUT.  TRACE  .DELETE .OPTIONS .CONNECT  (前三种最实用),有这麽多的请求方法,但web服务器不一定所有的都支持. GET   基本一致,请求指定的页面信息,并返回实体主体. HEAD  基本和GET一致 ,只不过返回的响

python利用requests模拟http请求及请求头

一.通过requests发送请求 之前一直使用urllib以及urllib2模拟http请求发送,在实际场景中,我们需要造自己定义好的header.body等等,使用urllib很麻烦,很偶然的机会,接触到了requests,可以通过发送xml.简单易用,直接上代码: requests  connected():          #通过形参传入url以及请求参数,get方法发送请求     (param):         get = requests.get(==param)        

20150108--HTTP协议+PHP模拟HTTP请求-02

HTTP协议 1. 什么是http协议? 协议:协议是一种双方约定好的规范,双方在做某一件事情的事情,必须按照事先定义好的规范去实现和操作. HTTP:超文本传输协议,HyperText Transport Protocol,超文本在服务器与浏览器之间传输的时候必须遵循的协议. 2. 什么是html? 超文本标记语言:HyperText Markup Language html的作用:保证同一数据在不同的电脑(用户),看到的效果一样. HTTP协议工作原理 HTTP协议特点 支持客户/服务器模式

使用fiddler模拟http请求

出处:http://zhuqil.cnblogs.com 概述  与httpwath相比,fiddler能模拟http请求.能断点调试.http分析统计吸引了我,使用之后感觉这个工具非常不错,这篇文章只单介绍一下fiddler工作原理,简单介绍一下它的重要功能,以及如何使用使用fiddler模拟http请求,满足移动服务端开发人员调试的问题.对于其他的功能大家可以自己研究一下. fiddler工作原理: 当你启动了Fiddler,程序将会把自己作为一个微软互联网服务的系统代理.作为系统代理,所有

python模拟Get请求保存网易歌曲的url

python模拟Get请求保存网易歌曲的url 作者:vpoet 日期:大约在夏季 #coding:utf-8 import requests import json url = 'http://music.163.com//api/dj/program/byradio?radioId=271002&id=271002&ids=%5B%22271002%22%5D&limit=100&offset=0' headers = { 'Host': 'music.163.com'

关于HttpClient模拟浏览器请求的參数乱码问题解决方式

转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/44407297 http://www.llwjy.com/blogdetail/9383e88e4bc7378b8318e15b0ac33559.html 个人博客站已经上线了,网址:www.llwjy.com,欢迎大家吐槽~ -----------------------------------------------------------------------------

HTTP-java模拟Get请求小栗子

1 import java.io.BufferedReader; 2 import java.io.IOException; 3 import java.io.InputStreamReader; 4 import java.net.HttpURLConnection; 5 import java.net.URL; 6 8 import javax.net.ssl.HttpsURLConnection;10 11 import org.apache.log4j.Logger;13 16 /* 1

轻松把玩HttpAsyncClient之模拟post请求示例

如果看到过我前些天写过的<轻松把玩HttpClient之模拟post请求示例>这篇文章,你再看本文就是小菜一碟了,如果你顺便懂一些NIO,基本上是毫无压力了.因为HttpAsyncClient相对于HttpClient,就多了一个NIO,这也是为什么支持异步的原因. 不过我有一个疑问,虽说NIO是同步非阻塞IO,但是HttpAsyncClient提供了回调的机制,这点儿跟netty很像,所以可以模拟类似于AIO的效果.但是官网上的例子却基本上都是使用Future<HttpResponse

php curl模拟post请求提交数据

最近在做校园图书馆图书信息的采集程序,既然是图书馆图书的采集,肯定有提交搜索的页面,无非是post提交,让我想到了curl模拟提交,首先通过firebug进行抓包查询下post提交后的格式如下: txtWxlx=CN&hidWxlx=spanCNLx&txtPY=HZ&txtTm=%D2%F4%C0%D6&txtLx=%25&txtSearchType=1&nMaxCount=100&nSetPageSize=10&cSortFld=%D5%