C语言使用HTTP代码示例

这篇具有很好参考价值的文章主要介绍了C语言使用HTTP代码示例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这里提供一个C语言使用HTTP请求代码示例:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>

#define BUFFER_SIZE 4096

void send_request(int sock, char *host, char *path) {
    char request[BUFFER_SIZE];
    sprintf(request, "GET %s HTTP/1.1\r\nHost: %s\r\nUser-Agent: Mozilla/5.0\r\nConnection: close\r\n\r\n", path, host);
    send(sock, request, strlen(request), 0);
}

void recv_response(int sock) {
    char response[BUFFER_SIZE];
    int n;
    while ((n = recv(sock, response, BUFFER_SIZE - 1, 0)) > 0) {
        response[n] = '\0';
        printf("%s", response);
    }
}

int main(int argc, char *argv[]) {
    if (argc < 3) {
        printf("usage: %s host path\n", argv[0]);
        return -1;
    }

    char *host = argv[1];
    char *path = argv[2];
    struct sockaddr_in serv_addr;
    int sock = socket(AF_INET, SOCK_STREAM, 0);
    if (sock < 0) {
        perror("socket");
        return -1;
    }

    memset(&serv_addr, 0, sizeof(serv_addr));
    serv_addr.sin_family = AF_INET;
    serv_addr.sin_addr.s_addr = inet_addr(host);
    serv_addr.sin_port = htons(80);

    if (connect(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) {
        perror("connect");
        return -1;
    }

    send_request(sock, host, path);
    recv_response(sock);

    close(sock);

    return 0;
}

以上代码实现了一个使用C语言发送HTTP GET请求的程序,需要通过命令行传入目标主机的IP地址和请求路径。程序中,首先创建一个TCP套接字并连接到目标主机的80端口,然后构造GET请求发送到目标主机,并接受目标主机返回的响应并输出到终端。注意该程序中没有使用HTTP协议的解析器,只是简单地发送请求和接收响应。文章来源地址https://www.toymoban.com/news/detail-514064.html

到了这里,关于C语言使用HTTP代码示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C Sharp使用HTTP代码示例

    以下是使用C#发送HTTP请求的示例代码: ```csharp using System; using System.Net; using System.IO; class Program { static void Main(string[] args) { // 创建一个Web请求对象 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(\\\"Example Domain\\\"); // 设置请求方法为GET request.Method = \\\"GET\\\"; // 发送请求并获取响应 HttpW

    2024年02月06日
    浏览(60)
  • PHP使用嵌入HTTP代理代码示例

    以下是使用 PHP 嵌入 HTTP 代理的示例代码: ```php ?php // 设置代理服务器地址和端口 $proxy = \\\'127.0.0.1:8080\\\'; // 设置代理服务器用户名和密码(如果需要验证) $proxyAuth = \\\'username:password\\\'; // 创建 cURL 句柄 $ch = curl_init(); // 设置 cURL 选项 curl_setopt($ch, CURLOPT_URL, \\\'Example Domain\\\'); curl_setopt

    2024年02月06日
    浏览(44)
  • Linux使用HTTP隧道代理代码示例模版

    以下是一个使用HTTP隧道代理的示例代码模板: ```python import requests def send_request(url, proxy_host, proxy_port): # 设置代理 proxies = { \\\'http\\\': f\\\'http://{proxy_host}:{proxy_port}\\\', \\\'https\\\': f\\\'http://{proxy_host}:{proxy_port}\\\' } try: # 发送请求 response = requests.get(url, proxies=proxies) # 处理响应 if response.status_code =

    2024年02月12日
    浏览(35)
  • python使用HTTP隧道代理代码示例模板

    以下是使用HTTP隧道代理的Python代码示例模板: ```python import requests # 设置代理服务器地址和端口号 proxy_host = \\\"your_proxy_host\\\" proxy_port = \\\"your_proxy_port\\\" # 设置代理服务器的用户名和密码(如果需要) proxy_username = \\\"your_proxy_username\\\" proxy_password = \\\"your_proxy_password\\\" # 构造代理服务器的认

    2024年02月08日
    浏览(46)
  • 【C语言开源库】 一个只有500行代码的开源http服务器:Tinyhttpd学习

    项目搬运,带中文翻译: https://github.com/nengm/Tinyhttpd 在嵌入式中,我们HTTP服务器用得最多的就是boa还有就是goahead,但是这2个代码量比较大,而Tinyhttpd只有几百行,比较有助于我们学习。 直接make之后,所以假如html有执行权限先把它去除了,chmod 600 index.html color.cgi、date.cgi必须

    2024年02月11日
    浏览(42)
  • 如何使用PHPUnit编写一个PHP单元测试-简单的代码示例

    在软件开发过程中,单元测试是一种重要的测试方法,可以确保代码的质量和可靠性。在PHP开发中,也可以通过编写单元测试来验证代码的正确性。下面将介绍一些编写PHP单元测试的基本步骤和常用工具。 首先,你需要一个PHP单元测试框架,比如PHPUnit。PHPUnit是PHP社区最流行

    2024年02月04日
    浏览(57)
  • R语言使用HTTP爬虫IP写一个程序

    R语言爬虫是指使用R语言编写程序,自动从互联网上获取数据的过程。在R语言中,可以使用三个主要的包(XML、RCurl、rvest)来实现爬虫功能。了解HTML等网页语言对于编写爬虫程序也非常重要,因为这些语言是从网页中提取数据的关键。网页语言通常是树形结构,只要理解了

    2024年02月06日
    浏览(45)
  • CSS 提高性能的方法,并提供一些实用的技巧和代码示例

    CSS 是前端开发中不可或缺的一部分,它负责网页的样式和布局。随着网站规模和复杂度的增加,CSS 的性能也变得越来越重要。本文将介绍 CSS 提高性能的方法,并提供一些实用的技巧和代码示例。 使用压缩后的 CSS 文件 压缩 CSS 文件可以减小文件大小,加快加载速度。常见的

    2024年02月06日
    浏览(59)
  • 一个简单的使用支持向量机(SVM)进行回归预测的Python代码示例,包含了源数据和注释

    使用了scikit-learn库中的SVR类来实现支持向量机回归模型。首先,我们导入了所需的库,包括numpy用于处理数据,train_test_split用于划分训练集和测试集,SVR用于构建SVM回归模型,以及mean_squared_error和r2_score用于评估模型性能。 接着,我们定义了源数据,包括特征矩阵X和目标向量

    2024年02月11日
    浏览(55)
  • HTTP Proxy Demo 代码示例

    以下是一个简单的 HTTP Proxy Demo 代码,使用 Python 3 编写: ```python import socket def handle_request(client_socket): # 接收客户端请求 request_data = client_socket.recv(1024) print(request_data.decode()) # 解析请求,获取目标主机和端口号 first_line = request_data.decode().split(\\\'n\\\')[0] url = first_line.split(\\\' \\\')[1] hos

    2024年02月09日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包