//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. hdu1045 DFS

    #include<stdio.h> #include<string.h> int n; int maxx; ][]; ]={,-,,}; ]={,,,-}; ][][];//炮 ...

  2. Linux下的压缩和解压缩命令——bzip2/bunzip2

    bzip2命令 bzip2命令用于创建和管理(包括解压缩)".bz2"格式的压缩包. 我们遇见Linux压缩打包方法有很多种,以下讲解了Linux压缩打包方法中的Linux bzi ...

  3. Python全栈开发【面向对象进阶】

    Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__geta ...

  4. maven中classpath路径(转)

    前几天看见一个大神总结classpath文章,觉得特别有用.所以,特此转载(http://my.oschina.net/GivingOnenessDestiny/blog/603505) 各种path ...

  5. 适配各种Windows分辨率,为DPI添加感知,当在高DPI时,禁用WINFORM缩放等。

    因为现在高分屏越来越多,很多windows设备必须设置高DPI,这样很容易导致WINFORM整体错位,因此我们需要自己适配.禁止缩放 在程序配置清单 mainfest中添加如下. <assemb ...

  6. GitLab使用

    版本:GitLab Community Edition 8.9.9 1.配置权限 public,private developer,master,owner project groups 2.ssh免 ...

  7. DataSet装换为泛型集合 222

    #region DataSet装换为泛型集合 /// <summary> /// 利用反射和泛型 /// </summary> /// <param name=" ...

  8. TFS工作区(Workspaces )命令

    Workspaces 命令 tf workspaces [/owner:ownername] [/computer:computername] [/server:servername] [/forma ...

  9. Python下Json和Msgpack序列化比较

     最近用Python时,遇到了序列化对象的问题,传统的json和新型序列化工具包msgpack都有涉及,于是做一个简单的总结: 通俗的讲:序列化:将对象信息转化为可以存储或传输的形式:反序列化:把这个 ...

  10. 摆脱Spring 定时任务的@Scheduled cron表达式的困扰

    一.背景 最近因为需要,需要适用Spring的task定时任务进行跑定时任务,以前也接触过,但是因为懒没有好好地理解@Scheduled的cron表达式,这次便对它做了一个全方位的了解和任务,记录下来 ...