gpt4 book ai didi

c - 没有自动 Proxy-Connection header 的 libcurl HTTP HEAD 请求

转载 作者:太空宇宙 更新时间:2023-11-03 23:36:08 25 4
gpt4 key购买 nike

我需要对以下使用 libcurl 的说明:

我需要发送如下所示的 http HEAD 请求::

HEAD /mshare/3/30002:12:primary/stream_xNKNVH.mpeg HTTP/1.1
Host: 192.168.70.1:8080
Accept: */*
User-Agent: Kreatel_IP-STB
getcontentFeatures.dlna.org: 1

我写的代码(如下所示)以稍微不同的方式发送 HEAD 请求:

 curl_global_init(CURL_GLOBAL_ALL);
CURL* ctx = NULL;
const char *url = "http://192.168.70.1:8080/mshare/3/30002:12:primary/stream_xNKNVH.mpeg" ;
char *returnString;
struct curl_slist *headers = NULL;
ctx = curl_easy_init();
headers = curl_slist_append(headers,"Accept: */*");
headers = curl_slist_append(headers,"User-Agent: Kreatel_IP-STB");\
headers = curl_slist_append(headers,"getcontentFeatures.dlna.org: 1");
headers = curl_slist_append(headers,"Pragma:");
headers = curl_slist_append(headers,"Proxy-Connection:");
curl_easy_setopt(ctx,CURLOPT_HTTPHEADER , headers );
curl_easy_setopt(ctx,CURLOPT_NOBODY ,1 );
curl_easy_setopt(ctx,CURLOPT_VERBOSE, 1);
curl_easy_setopt(ctx,CURLOPT_URL,url );
curl_easy_setopt(ctx,CURLOPT_NOPROGRESS ,1 );
curl_easy_perform(ctx);
curl_easy_cleanup(ctx);
curl_global_cleanup();

上面显示的代码以稍微不同的形式发送 HEAD 请求,添加了 Proxy-Connection header (如下所示)

HEAD http://192.168.70.1:8080/mshare/3/30002:12:primary/stream_xNKNVH.mpeg HTTP/1.1
Host: 192.168.70.1:8080
Proxy-Connection: Keep-Alive
Accept: */*
User-Agent: Kreatel_IP-STB
getcontentFeatures.dlna.org: 1

任何人都可以分享适当的代码吗?

最佳答案

这是因为 libcurl 似乎自动读取了环境变量 http_proxy。当您在 HTTP 代理后面时,此请求是正常的。代理需要知道完整的 URL 才能发出请求,这就是请求看起来不同的原因。

在执行程序之前尝试取消设置环境变量 http_proxy(export http_proxy=""),请求将按预期发出。

我相信有一种方法可以明确告诉 libcurl 使用/不使用代理,但我不记得了。

对了,这两行代码

 headers = curl_slist_append(headers,"Pragma:");
headers = curl_slist_append(headers,"Proxy-Connection:");

没有意义,因为没有发送空头。

关于c - 没有自动 Proxy-Connection header 的 libcurl HTTP HEAD 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2955695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com