C#通过GET/POST方式发送Http请求

下面我将为你详细讲解“C#通过GET/POST方式发送HTTP请求”的完整攻略。

1. 使用HttpWebRequest类发送GET请求

发送GET请求需要使用HttpWebRequest类。下面是发送GET请求的示例代码:

string url = "https://example.com/api/";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
string responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

上面的代码将向url发送一个GET请求,并返回一个包含服务器返回信息的HttpWebResponse对象。然后我们可以从这个对象中读取返回的内容。

2. 使用HttpWebRequest类发送POST请求

发送POST请求同样需要使用HttpWebRequest类,不过发送POST请求需要在请求中添加请求的参数。下面是发送POST请求的示例代码:

string url = "https://example.com/api/";
string postData = "param1=value1&param2=value2"; //请求的参数
byte[] postDataBytes = Encoding.UTF8.GetBytes(postData);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = postDataBytes.Length;
using (Stream requestStream = request.GetRequestStream())
{
    requestStream.Write(postDataBytes, 0, postDataBytes.Length);
}
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
string responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

上面的代码将向url发送一个POST请求,并添加postData作为请求参数。然后我们将请求参数转换为字节数组,设置请求的ContentType和ContentLength,使用GetRequestStream()方法获取请求流并写入请求参数,接着发送请求并读取服务器返回的内容。

3. 示例1:使用C#发送GET请求

假设我们要向https://jsonplaceholder.typicode.com/posts/1发送一个GET请求,返回以下内容:

{
  "userId": 1,
  "id": 1,
  "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
  "body": "quia et suscipit\nsuscipit recusandae..."
}

下面是发送GET请求的完整代码:

public async Task<string> Get(string url)
{
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    request.Method = "GET";
    using (HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync())
    {
        using (Stream stream = response.GetResponseStream())
        {
            using (StreamReader reader = new StreamReader(stream))
            {
                return await reader.ReadToEndAsync();
            }
        }
    }
}

string url = "https://jsonplaceholder.typicode.com/posts/1";
string responseString = await Get(url);
Console.WriteLine(responseString);

上面的代码中,我们定义了一个名为Get的异步方法来发送GET请求并返回服务器的响应。然后我们调用这个方法来发送请求,最后将响应内容输出到控制台。

4. 示例2:使用C#发送POST请求

假设我们要向https://reqbin.com/echo/post/json发送一个POST请求,并添加以下JSON格式的数据作为请求参数:

{
  "name": "John",
  "age": 30,
  "city": "New York"
}

下面是发送POST请求的完整代码:

public async Task<string> Post(string url, string data)
{
    byte[] postDataBytes = Encoding.UTF8.GetBytes(data);
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    request.Method = "POST";
    request.ContentType = "application/json";
    request.ContentLength = postDataBytes.Length;
    using (Stream requestStream = request.GetRequestStream())
    {
        await requestStream.WriteAsync(postDataBytes, 0, postDataBytes.Length);
    }
    using (HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync())
    {
        using (Stream stream = response.GetResponseStream())
        {
            using (StreamReader reader = new StreamReader(stream))
            {
                return await reader.ReadToEndAsync();
            }
        }
    }
}

string url = "https://reqbin.com/echo/post/json";
string data = @"{
                  ""name"": ""John"",
                  ""age"": 30,
                  ""city"": ""New York""
               }";
string responseString = await Post(url, data);
Console.WriteLine(responseString);

上面的代码中,我们定义了一个名为Post的异步方法来发送POST请求并返回服务器的响应。然后我们调用这个方法来发送请求,最后将响应内容输出到控制台。

以上就是使用C#发送HTTP请求的完整攻略,包括了使用HttpWebRequest类发送GET/POST请求的示例代码。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#通过GET/POST方式发送Http请求 - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • C#使用FolderBrowserDialog类实现选择打开文件夹方法详解

    C#使用FolderBrowserDialog类实现选择打开文件夹方法详解 在C#开发中,文件夹是一个非常常见的操作对象,使用FolderBrowserDialog类可以实现选择打开文件夹的效果。本文将详细讲解如何使用FolderBrowserDialog类实现选择打开文件夹的方法。 使用 FolderBrowserDialog 显示窗口 FolderBro…

    C# 2023年6月1日
    00
  • asp.net中使用log4net详解

    ASP.NET中使用log4net详解 什么是log4net log4net是Apache的一个开源项目,其目的是为.NET日志输出提供一个高效、灵活且可扩展的框架。log4net提供了丰富的日志记录机制,能够强化应用程序的可维护性和稳定性,将应用程序中各种事件输出到各种目标(文件、数据库、控制台等)。 如何使用log4net 步骤一:在项目中引用log4n…

    C# 2023年5月31日
    00
  • C#正则表达式匹配HTML中的图片路径,图片地址代码

    针对“C#正则表达式匹配HTML中的图片路径,图片地址代码”的问题,以下是完整攻略: 前言 在很多网站中,图片的路径都是通过HTML代码进行定义和获取。而在使用C#开发的网站中,我们可能需要通过正则表达式提取HTML中的图片路径,以便我们可以预览或下载图片。 操作步骤 第一步:获取HTML代码 首先,我们需要获取HTML代码,一种常用的方法是使用HttpWe…

    C# 2023年6月7日
    00
  • C#特性 扩展方法

    C#特性:扩展方法 C#中的扩展方法是一种特殊的静态方法,它们可以像实例方法一样使用,但不需要通过类的实例来调用。扩展方法可以为已有类型添加新的方法,这些方法不需要修改原始类型的定义。 扩展方法使用using关键字引用包含这些方法的静态类。 定义扩展方法 定义一个扩展方法需要满足如下条件: 它必须在一个静态类中。 它必须是一个静态方法。 必须第一个参数是要扩…

    C# 2023年5月31日
    00
  • 在ASP.NET 2.0中操作数据之四十七:用SqlDataSource控件插入、更新、删除数据

    在ASP.NET 2.0中,使用SqlDataSource控件可以方便地操作数据,包括插入、更新、删除数据。下面将详细讲解如何使用SqlDataSource控件完成这些操作。 在ASP.NET 2.0中操作数据之四十七:用SqlDataSource控件插入数据 要使用SqlDataSource控件插入数据,需要完成以下步骤: 第一步:添加SqlDataSou…

    C# 2023年5月31日
    00
  • C#检查Windows是否安装了某个服务的方法

    我将为您详细讲解“C#检查Windows是否安装了某个服务的方法”的完整攻略。 方法 要检查Windows是否安装了某个服务,我们可以使用C#语言提供的System.ServiceProcess命名空间中的ServiceController类。 该类允许我们检查、启动、停止、暂停或恢复Windows服务。 以下是使用ServiceController类检查W…

    C# 2023年6月7日
    00
  • ASP.NET Core自定义中间件的方式详解

    ASP.NET Core自定义中间件的方式详解 在ASP.NET Core中,中间件是一种非常强大的机制,可以在请求管道中执行自定义逻辑。本攻略将提供一些示例,演示如何在ASP.NET Core中创建自定义中间件。 步骤 步骤1:创建.NET Core Web API项目 首先,需要创建一个.NET Core Web API项目。可以使用以下命令在命令行中创…

    C# 2023年5月17日
    00
  • C# Clear():从 ICollection中移除所有元素

    C#Clear()方法详解 在C#中,Clear()是一个常用的方法,其函数签名为:public void Clear()。这个方法用于清除List集合中的所有元素,使其变为空集合。 具体而言,Clear()方法做两个主要方面的操作:删除所有元素,以及释放元素占用的存储空间。 下面,我们就详细介绍Clear()方法的使用。 基础用法 在 List 的对象上,…

    C# 2023年4月19日
    00
合作推广
合作推广
分享本页
返回顶部