//http请求工具类

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;

namespace HttpTest
{
class HttpUtil
{

/// <summary>
/// get请求
/// </summary>
/// <param name="url">网络地址</param>
/// <param name="parm">参数</param>
/// <returns></returns>
public static string HttpGet(string url,string parm){

return HttpRequest(url,parm,"GET");

}

/// <summary>
/// post请求
/// </summary>
/// <param name="url">网络地址</param>
/// <param name="parm">参数</param>
/// <returns></returns>
public static string HttpPost(string url,string parm) {

return HttpRequest(url,parm,"POST");
}

/// <summary>
/// 网络请求
/// </summary>
/// <param name="url">网络地址</param>
/// <param name="parm">参数</param>
/// <param name="method">请求方式</param>
/// <returns></returns>
private static string HttpRequest(string url, string parm, string method)
{

if(method.Equals("GET")){

url = url + "?" + parm;
}
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = method;
request.Timeout = 5 * 1000;
request.AllowWriteStreamBuffering = true;
request.AllowWriteStreamBuffering = true;
request.ContentType = "text/html;charset=UTF-8";
// request.ContentType = "application/x-www-form-urlencoded";
if (method.Equals("POST"))
{
StreamWriter wr = new StreamWriter(request.GetRequestStream(), Encoding.UTF8);
wr.Write(parm);
wr.Flush();
wr.Close();
}

HttpWebResponse respone = (HttpWebResponse)request.GetResponse();
var stream = respone.GetResponseStream();
StreamReader red = new StreamReader(stream, Encoding.UTF8);
string str = red.ReadToEnd();
red.Close();
stream.Flush();
stream.Close();
return str;
}
}
}

//调用示例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HttpTest
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(HttpUtil.HttpGet("https://hao.360.cn/?s0001",""));
}
}
}

c# http get请求与post请求实例的更多相关文章

  1. 请求转发:MVC设计模式、细节、请求域属性的编程实例、请求重定向和请求转发的区别

      请求转发:MVC设计模式.细节.请求域属性的编程实例.请求重定向和请求转发的区别 MVC设计模式将一次请求的响应过程分成三个功能模块(一般称之为层)来协同完成,这三个模块分别是Model(模型层) ...

  2. Error: 实例 "ddd" 执行所请求操作失败,实例处于错误状态。: 请稍后再试 [错误: Exceeded maximum number of retries. Exhausted all hosts available for retrying build failures for instance 6f60bc06-fcb6-4758-a46f-22120ca35a71.].

    Error: 实例 "ddd" 执行所请求操作失败,实例处于错误状态.: 请稍后再试 [错误: Exceeded maximum number of retries. Exhaus ...

  3. 错误: 实例 "ahwater-linux-core" 执行所请求操作失败,实例处于错误状态。: 请稍后再试 [错误: Exceeded maximum number of retries. Exceeded max scheduling attempts 3 for instance 7c1609c9-9d0f-4836-85b3-cefd45f942a7. Last exception: [u

    错误: 实例 "ahwater-linux-core" 执行所请求操作失败,实例处于错误状态.: 请稍后再试 [错误: Exceeded maximum number of ret ...

  4. 错误: 实例 "ruiy" 执行所请求操作失败,实例处于错误状态。: 请稍后再试 [错误: 'ascii' codec can't decode byte 0xe6 in position 0: ordinal not in range(128)].

    错误: 实例 "ruiy" 执行所请求操作失败,实例处于错误状态.: 请稍后再试 [错误: 'ascii' codec can't decode byte 0xe6 in posi ...

  5. ASP.NET Core应用针对静态文件请求的处理[2]: 条件请求与区间请求

    通过调用ApplicationBuilder的扩展方法UseStaticFiles注册的StaticFileMiddleware中间件帮助我们处理针对文件的请求.对于StaticFileMiddlew ...

  6. Ajax中Get请求与Post请求的区别

    Get请求和Post请求的区别 1.使用Get请求时,参数在URL中显示,而使用Post方式,则不会显示出来 2.使用Get请求发送数据量小,Post请求发送数据量大 例子 页面的HTML代码: &l ...

  7. 详细解读XMLHttpRequest(一)同步请求和异步请求

    本文主要参考:MDN XMLHttpRequest 让发送一个HTTP请求变得非常容易.你只需要简单的创建一个请求对象实例,打开一个URL,然后发送这个请求.当传输完毕后,结果的HTTP状态以及返回的 ...

  8. OKHttp源码学习同步请求和异步请求(二)

    OKHttp get private void doGet(String method, String s) throws IOException { String url = urlAddress ...

  9. JAVA发送HttpClient请求及接收请求结果

    1.写一个HttpRequestUtils工具类,包括post请求和get请求 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2 ...

  10. Servlet(10)—请求转发和请求重定向

    请求转发与请求重定向 ①区别: 本质区别:请求转发只发出一次请求,请求重定向则发出两次请求. 请求转发:地址栏是初次发出请求的地址在最终的Servlet中,request对象和中转的那个request ...

随机推荐

  1. bootstrap validate 实现页面动态验证(formvalidate)

    关于基本的bootstrap validate 验证方法外面有许多博客上都有讲解,我就不在过多叙述了.大家也可以去看官网api:http://bv.doc.javake.cn/api/ 今天要说的是动 ...

  2. Bootstrap 中的 Typeahead 组件 -- AutoComplete

    Bootstrap 中的 Typeahead 组件就是通常所说的自动完成 AutoComplete,功能很强大,但是,使用上并不太方便.这里我们将介绍一下这个组件的使用. 第一,简单使用 首先,最简单 ...

  3. Count the number of possible triangles

    From: http://www.geeksforgeeks.org/find-number-of-triangles-possible/ Given an unsorted array of pos ...

  4. vs2012 安装entity framework

    1.安装vs2012 2.打开vs2012的工具下的扩展工具 3.搜索nuget,没安装的直接在线安装 4.安装好了NuGet,程序包管理器控制台 5.执行命令Install-Package Enti ...

  5. SQL中循环和条件语句

    .if语句使用示例: declare @a int begin print @a end else begin print 'no' end .while语句使用示例: declare @i int ...

  6. [转]程序员趣味读物:谈谈Unicode编码

    from : http://pcedu.pconline.com.cn/empolder/gj/other/0505/616631_all.html#content_page_1 这是一篇程序员写给程 ...

  7. css实现隐藏滚动条

    demo1: html <div class="outer-container"> <div class="inner-container"& ...

  8. mysql循环操作

    #如果存在jyf_test存储过程则删掉 DROP PROCEDURE IF EXISTS jyf_test; DELIMITER // #创建存储过程 CREATE PROCEDURE jyf_te ...

  9. Web Js 按键事件……Enter提交事件 Enter Js事件

    $(document).ready(function(){ document.onkeydown = function (event){ if (event.keyCode==13) //回车键的键值 ...

  10. Range Sum Query - Immutable

    https://leetcode.com/problems/range-sum-query-immutable/ 用缓存撒 /** * @constructor * @param {number[]} ...