C# http get与post请求方法

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Net;
using System.IO;
using System.Text;
using System.Collections.Generic;

namespace WebAppTest
{
    public class HttpTools
    {

        public static string GetRequest(string url)
        {

            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);

            request.Method = "get";

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            using(StreamReader sr = new StreamReader(response.GetResponseStream(),Encoding.UTF8))
            {
                string result = sr.ReadToEnd();
                return result;
            }

        }

        public static string PostRequest(string url,Dictionary<object,object> paramList)
        {
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);

            StringBuilder sb = new StringBuilder();

            foreach (var item in paramList)
            {
                sb.Append(item.Key + "=" + item.Value + "&");
            }

            //将参数拼为:"name=test&pwd=123" 这种字符串格式 然后将字符串转为byte数组 最后将byte数组写入请求流中
            string paramData = sb.ToString().Trim(‘&‘);

            byte[] data = System.Text.Encoding.UTF8.GetBytes(paramData);

            //设置post方式
            request.Method = "post";

            //这句不能少  不难post请求 得不到对应的响应结果
            request.ContentType = "application/x-www-form-urlencoded";

            //设置请求参数的长度
            request.ContentLength = data.Length;

            Stream stream = request.GetRequestStream();

            stream.Write(data, 0, data.Length);

            stream.Close();

            /**
             * *****************注意事项********************
             *
             * 不管是get还是post请求最后得到的响应流不能直接stream
             * 不难得不到响应结果
             *
             *
             * 直接使用Stream 不能获取响应的结果值
             *
             * 要使用StreamReader才能获取响应的结果值
             *
             * Stream stream = response.GetResponseStream();
             *
             * byte[] data = new byte[2*1024*1024]
             *
             * int r = stream.Read(data,0,data.Length);
             *
             * string result = System.Text.Encoding.UTF8.GetString(data, 0, r);
             *
             *
             * **/

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            using(StreamReader sr = new StreamReader(response.GetResponseStream(),Encoding.UTF8))
            {
                string result = sr.ReadToEnd();
                return result;

            }

        }
    }
}
时间: 2024-08-08 05:34:39

C# http get与post请求方法的相关文章

HTTP请求响应报文&amp;&amp;相关状态码&amp;&amp;GET_POST请求方法 总结

HTTP请求报文: 一个HTTP请求报文由四个部分组成:请求行.请求头部.空行.请求数据 1.请求行   请求行由请求方法字段.URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔.比如 GET /data/info.html HTTP/1.1 方法字段就是HTTP使用的请求方法,比如常见的GET/POST 其中HTTP协议版本有两种:HTTP1.0/HTTP1.1 可以这样区别: HTTP1.0对于每个连接都的建立一次连接一次只能传送一个请求和响应,请求就会关闭,HTTP1.0没有Ho

一、OkHttp请求方法

OkHttp是一个高效的HTTP库: 支持 SPDY ,共享同一个 Socket 来处理同一个服务器的所有请求 如果 SPDY 不可用,则通过连接池来减少请求延时 无缝的支持GZIP来减少数据流量 缓存响应数据来减少重复的网络请求 OkHttp 处理了很多网络疑难杂症:会从很多常用的连接问题中自动恢复.如果您的服务器配置了多个IP地址,当第一个IP连接失败的时候,OkHttp会自动尝试下一个IP.OkHttp还处理了代理服务器问题和SSL握手失败问题. OkHttp是一个相对成熟的解决方案,据说

微信小程序数据请求方法wx.request小测试

微信小程序数据请求方法 wx.request wxml文件: <view> <textarea value="{{textdata}}"/> </view> <button bindtap="RequestData" value="Button">Button</button> 主要是一个按钮,点击后将请求的数据写入到textarea中 js文件: Page({ data:{ textd

python http请求方法整理

在python开发(http://www.maiziedu.com/course/python-px/)中,我们一般通过get.post方式发送http请求,可是最近在使用python做接口测试,发现python中http请求方法有许多种,作者整理了一番,把python中http请求方法都总结了出来,分享给大家,具体内容如下所示: 一.python自带库----urllib2 python自带库urllib2使用的比较多,简单使用如下: import urllib2 response = url

HTTP请求方法

HTTP请求方法 HTTP GET POST 1.OPTIONS 返回服务器针对特定资源所支持的HTTP请求方法 2.HEAD 向服务器请求与GET请求相一致的响应,只不过响应体将不会被返回 3.GET 向特定的资源发出请求 注:GET方法不应当被用于产生"副作用"的操作中 4.POST 向指定资源提交数据进行处理请求(例如:提交表单或者上传文件) 5.PUT 向指定资源位置上传其最新内容 6.DELETE 请求服务器删除Request_URL所标识的资源 7.TRACE 回显服务器收

TCP/IP协议族(一) HTTP简介、请求方法与响应状态码

接下来想系统的回顾一下TCP/IP协议族的相关东西,当然这些东西大部分是在大学的时候学过的,但是那句话,基础的东西还是要不时的回顾回顾的.接下来的几篇博客都是关于TCP/IP协议族的,本篇博客就先简单的聊一下TCP/IP协议族,然后聊一下HTTP协议,然后再聊一下SSL上的HTTP(也就是HTTPS)了.当然TCP/IP协议族是个老生常谈的话题,网络上关于该内容的文章一抓一大把呢,但是鉴于其重要性,还是有必要系统的总结一下的. 一.TCP/IP协议组简述 在聊HTTP与HTTPS之前呢,我们先简

HTTP请求方法详解

HTTP请求方法详解 请求方法:指定了客户端想对指定的资源/服务器作何种操作 下面我们介绍HTTP/1.1中可用的请求方法: [GET:获取资源]     GET方法用来请求已被URI识别的资源.指定的资源经服务器端解析后返回响应内容(也就是说,如果请求的资源是文本,那就保持原样返回:如果是CGI[通用网关接口]那样的程序,则返回经过执行后的输出结果).     最常用于向服务器查询某些信息.必要时,可以将查询字符串参数追加到URL末尾,以便将信息发送给服务器.     使用GET请求时经常会发

HTTP协议中POST、GET、HEAD、PUT等请求方法以及一些常见错误

请求方法是请求一定的Web页面的程序或用于特定的URL.可选用下列几种: GET: 请求指定的页面信息,并返回实体主体. HEAD: 只请求页面的首部. POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体. PUT: 从客户端向服务器传送的数据取代指定的文档的内容. DELETE: 请求服务器删除指定的页面. OPTIONS: 允许客户端查看服务器的性能. TRACE: 请求服务器在响应中的实体主体部分返回所得到的内容. PATCH: 实体中包含一个表,表中说明与该URI所

请求方法

标准Http协议支持六种请求方法,即: 0,GET 1,HEAD 2,PUT 3,DELETE 4,POST 5,OPTIONS 但其实我们大部分情况下只用到了GET和POST.如果想设计一个符合RESTful规范的web应用程序,则这六种方法都会用到.不过即使暂时不想涉及REST,了解这六种方法的本质仍然是很有作用的.大家将会发现,原来web也是很简洁明了的.下面依次说明这六种方法. 0,GET:GET可以说是最常见的了,它本质就是发送一个请求来取得服务器上的某一资源.资源通过一组HTTP头和

网络工程 POST与GET请求方法的本质区别

POST与GET请求方法的本质区别: 第一:GET用于信息获取,它是安全的(这里安全的含义是指非修改信息),而POST是用于修改服务器上资源的请求 第二:GET请求的数据会附在URL之后,而POST把提交的数据则放置在HTTP报文实体的主体里,所以,POST的安全性要比GET的安全性高 第三:对于POST的请求数据量比GET高是个误区,真正影响请求数据量的是服务器,服务器的限制才是真正的原因.