C#用SOCKET发送HTTP请求小例教程

本文提供了一个C#程序,展示了如何使用Socket发送HTTPGET请求到example.com的80端口,包括连接、构造报文、接收响应和关闭连接的过程。同时提到了在实际开发中推荐使用HttpClient或WebRequest类的便捷性。
摘要由CSDN通过智能技术生成

使用Socket发送HTTP请求的示例代码如下:

using System;
using System.Net.Sockets;
using System.Text;

class Program
{
    static void Main()
    {
        // 创建Socket
        Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

        // 连接服务器
        clientSocket.Connect("example.com", 80);

        // 构造HTTP请求报文
        string request = "GET /api/data HTTP/1.1\r\n" +
                        "Host: example.com\r\n" +
                        "Connection: close\r\n" +
                        "\r\n";

        // 发送HTTP请求
        byte[] requestBytes = Encoding.ASCII.GetBytes(request);
        clientSocket.Send(requestBytes);

        // 接收服务器响应
        byte[] buffer = new byte[1024];
        int bytesRead;
        StringBuilder response = new StringBuilder();

        do
        {
            bytesRead = clientSocket.Receive(buffer);
            response.Append(Encoding.ASCII.GetString(buffer, 0, bytesRead));
        }
        while (bytesRead > 0);

        // 关闭Socket连接
        clientSocket.Close();

        // 输出服务器响应
        Console.WriteLine(response.ToString());
    }
}

上述代码创建了一个Socket对象,连接到指定的服务器和端口(例如80端口),构造了一个简单的GET请求报文并发送给服务器。然后从服务器接收响应数据,并将其打印到控制台上。

需要根据实际情况修改请求报文中的URL、主机和头信息等。

请注意,使用Socket发送HTTP请求相对比较底层,需要手动进行HTTP协议的构造和解析。在实际开发中,一般推荐使用更高层次的HttpClient或WebRequest类来发送HTTP请求,这些类提供了更方便和易用的API。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值