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#对Access进行增删改查的完整示例

    对于“C#对Access进行增删改查的完整示例”的攻略,我们来从以下几个方面讲解。 1.准备工作 首先,在操作Access数据库之前,我们需要准备好以下几个工作: 在电脑上安装Microsoft Access,并创建好需要操作的数据库文件。 在C#项目中添加对应的ODBC驱动(如果没有则自行下载安装)。 2.连接数据库 接下来,我们需要在C#中打开数据库连接…

    C# 2023年6月1日
    00
  • ASP.NET 程序员都非常有用的85个工具

    ASP.NET程序员都非常有用的85个工具 作为ASP.NET程序员,我们需要使用各种工具来提高我们的工作效率和代码质量。在本文中,我们将介绍85个非常有用的ASP.NET工具,这些工具可以帮助我们更好地开发和维护ASP.NET应用程序。 1. 开发工具 以下是一些非常有用的ASP.NET开发工具: 1.1 Visual Studio Visual Stud…

    C# 2023年5月15日
    00
  • C# DateTime.AddMonths()方法: 将指定的月份数加到指定的日期上

    C#中DateTime.AddMonths()的作用与使用方法 AddMonths方法是DateTime类中提供的一个方法,用于在当前DateTime对象上增加指定数量的月份。它的具体格式如下: public DateTime AddMonths(int months); 其中参数months表示要增加的月份数量,可以是正数、零或负数。正数表示当前时间的月份…

    C# 2023年4月19日
    00
  • C#实现字体旋转的方法

    下面就是C#实现字体旋转的完整攻略。 1. 绘制文字 首先,我们需要使用C#绘制文字。对于WinForm应用程序,我们可以在Paint事件中创建一个Graphics对象,然后使用DrawString方法绘制文字。例如: private void Form1_Paint(object sender, PaintEventArgs e) { // 创建Graph…

    C# 2023年6月7日
    00
  • C# WinForm实现自动更新程序的方法详解

    C# WinForm实现自动更新程序的方法详解 在开发Windows应用程序时,自动更新功能是一项非常重要的功能。本文将介绍如何使用C# WinForm实现自动更新程序的方法。 第一步:设计自动更新界面 在设计WinForm的自动更新界面中,需要考虑以下几个方面: 显示当前应用程序版本号和更新版本号; 显示更新进度和下载速度; 提供更新日志和更新说明; 提供…

    C# 2023年6月1日
    00
  • asp.net微软图表控件使用示例代码分享

    这里给出一个完整攻略,讲解如何使用asp.net微软图表控件,包括实现基础图表的绘制、样式和格式设置以及数据绑定等操作。 准备工作 在开始之前,我们需要准备一些工作,如安装相应的软件、添加图表控件、引用相关命名空间等。下面是具体步骤: 安装软件 首先,我们需要安装Microsoft Visual Studio和ASP.NET Web Forms应用程序开发工…

    C# 2023年5月31日
    00
  • CommunityToolkit.Mvvm8.1 IOC依赖注入控制反转(5)

      本系列文章导航 https://www.cnblogs.com/aierong/p/17300066.html https://github.com/aierong/WpfDemo (自我Demo地址) 希望提到的知识对您有所提示,同时欢迎交流和指正 作者:aierong出处:https://www.cnblogs.com/aierong     说明 …

    C# 2023年4月22日
    00
  • C#编写的艺术字类实例代码

    下面是C#编写艺术字类的实例代码攻略: 1. 了解需求 我们需要实现一个C#类,该类应该能够将普通的文本字符串转换为艺术字,并返回转换后的字符串。 2. 设计思路 在我们设计代码之前,需要确定几个关键要素,包括: 需要支持哪些字符集 艺术字的样式和大小如何设计 需要引用哪些库和依赖项 在这里,我们会选择使用ASCII字符集,这个字符集是我们日常中最常使用的字…

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