小编Dan*_*erg的帖子

将curl_easy句柄添加到工作curl_multi_handle

我尝试使用CURL库实现多线程下载。

我准备 N 个线程(下载不同范围的简单句柄),然后调用curl_multi_perform(multiHandle, &running)。

我的问题

  1. 如何检查特定线程(已添加到多句柄)现在是否正在下载?我还没有找到任何选项。
  2. 如果特定线程完成下载,它必须再次建立连接并继续下载另一个范围。可以做吗?

c++ curl libcurl

4
推荐指数
1
解决办法
3735
查看次数

使用curl -with --cert

我正在使用cUrl使用他们发送给我的.cer证书从公司网站站点请求数据.这是命令:

cUrl --header "Content-Type: text/xml;charset=UTF-8" \
     --data @bustaRequestISEE2015ConsultazioneAttestazione.xml \
     -o bustaResponseISEE2015ConsultazioneAttestazione.xml \
     --cert ./caaffabisrl.cer \
     https://istitutonazionaleprevidenzasociale.spcoop.gov.it/PD
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我收到此错误消息:

curl:(58)无法加载PEM客户端证书,OpenSSL错误错误:0906D06C:PEM例程:PEM_read_bio:没有开始行,(找不到密钥,错误的密码短语或文件格式错误?)

有没有人可以帮助我?

Tks,克里斯蒂亚诺.

ssl curl certificate ssl-certificate

4
推荐指数
2
解决办法
4万
查看次数

我的curl POST收到“来自服务器的空回复”

我正在遵循此指南:

http://lua-programming.blogspot.co.uk/

我是需要创建API的那一部分。我以前使用过kong,并创建了一个脚本来制作api。问题是我无法创建API。我的脚本实际上是一个没有插件的准系统api(想先创建一个api):

curl -X POST --url http://localhost:8001/apis/ --data 'name=mock' --data 'upstream_url=https://mockbin.com' --data 'request_host=mockbin.com';

每当我运行此命令时,都会出现curl: (52) Empty reply from server错误,但是当我执行该命令时curl -X GET --url http://localhost:8001/apis,它会告诉我当前有多少个api(为0),因此服务器肯定没有问题,对吗?

Ive在本地安装了cassandra和kong。有任何想法吗?

ubuntu curl kong

4
推荐指数
1
解决办法
7848
查看次数

为什么libcurl有时会抱怨"无法解析主机名"?

我编写了一个使用libcurl的多线程程序,但有时curl会抱怨它在exec curl_easy_perform之后无法解析主机名,有时候不会.

size_t Http::WriteMemoryCallback(void *contents, size_t size, size_t nmemb, void *userp)
{
    size_t realsize = size * nmemb;
    MemoryStruct *mem = (MemoryStruct *)userp;

    mem->memory = (char *)realloc(mem->memory, mem->size + realsize + 1);
    assert(NULL != mem->memory);
    memcpy(&(mem->memory[mem->size]), contents, realsize);
    mem->size += realsize;
    mem->memory[mem->size] = 0;

    return realsize;
}

void Http::run(const URL &url, Http::FinishedCallback cbk)
{
    CURL *handle = curl_easy_init();
    if (handle) 
    {

        MemoryStruct *chunk = new MemoryStruct;
        chunk->memory = (char *)malloc(1);  /* will be grown as needed by the realloc above …
Run Code Online (Sandbox Code Playgroud)

curl libcurl

4
推荐指数
1
解决办法
1533
查看次数

CURLOPT_PUT 与 CURLOPT_POSTFIELDS

当我通过 curl 将 PUT 请求 API 发送到 REST 时,我发现了奇怪的行为。如果设置参数curl_setopt($curl, CURLOPT_PUT, true),则查询,其中 CURLOPT_POSTFIELDS 不为空,则查询执行持续 1.5 分钟(好像它取决于某个超时)。如果使用参数curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT")发送相同的请求,那么查询执行将持续大约 1 秒,这是应该的。有人可以解释这些参数之间的根本区别吗?

示例代码:

$data = http_build_query(array("enable"=> 1));

if( $curl = curl_init() ) {
    curl_setopt($curl, CURLOPT_URL, BASE_URL .'users/2');
    curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);    
    curl_setopt($curl, CURLOPT_PUT, true); // execution time 1.5 min
    //curl_setopt ($ curl, CURLOPT_CUSTOMREQUEST, "PUT"); - execution time 1 sec
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    $out = json_decode(curl_exec($curl));
    curl_close($curl);      
}
Run Code Online (Sandbox Code Playgroud)

php api curl put

4
推荐指数
1
解决办法
8118
查看次数

为什么curl在mac上使用HTTP/1.1而不是HTTP/2?

根据这个https://curl.haxx.se/docs/http2.html

Since 7.47.0, the curl tool enables HTTP/2 by default for HTTPS connections.

使用自制软件安装最新版本并检查:

curl --version
curl 7.54.1 (x86_64-apple-darwin15.6.0) libcurl/7.54.1 SecureTransport zlib/1.2.5
Run Code Online (Sandbox Code Playgroud)

curl在启用HTTP2的URL上运行(例如使用https://tools.keycdn.com/http2-test测试)我得到:

curl -I http://www.google.co.uk 
HTTP/1.1 200 OK
Run Code Online (Sandbox Code Playgroud)

curl --http2 -v http://www.google.co.uk
curl: (1) Unsupported protocol
Run Code Online (Sandbox Code Playgroud)

知道为什么它使用HTTP/1.1而不是HTTP/2?

curl http-1.1 http2

4
推荐指数
1
解决办法
4096
查看次数

cURL - 执行命令并将 Json 结果保存到文件中?

我正在尝试在 CMD 上运行此命令,并且该命令“似乎”运行没有错误,但我不确定它是否确实发出了请求。结果应以 Json 文件形式返回。

curl -H "Accept: application/json+v3" -H "x-api-key: <my_api_key>" \https://beta.check-mot.service.gov.uk/trade/vehicles/mot-tests\?registration=X182XCD
Run Code Online (Sandbox Code Playgroud)

是 API 文档。

当我在 CMD 中运行此代码时,出现以下错误:

curl: (1) Protocol "\https" not supported or disabled in libcurl
Run Code Online (Sandbox Code Playgroud)

\从 中删除\https://似乎可以解决它。但我不确定这个命令是否执行成功。或者是否执行正确,只需要保存Json结果。我只需要将 Json 结果保存到一个文件中,然后我可以在其中处理它们。

编辑1:我按照@gabriel-santos 发布的方式运行了代码,这就是我得到的。该命令未在根目录中创建新文件。 在此输入图像描述

curl cmd

4
推荐指数
1
解决办法
2万
查看次数

GET 和 POST 请求中的 Curl -X。我需要-X吗?

在一个项目中,我看到同事在 GET CURL 请求中设置 -X 参数。我承认我不是专家,我总是在没有这个参数的情况下触发我的请求。它奏效了。我知道X代表请求。但仅此而已。

现在我的问题。是否有必要包含 X 参数?如果需要,为什么?

curl GET http://localhost:3000/api/projects/代替 curl -X GET http://localhost:3000/api/projects/

api curl

4
推荐指数
1
解决办法
7337
查看次数

curl,API 请求在 Insomnia 中有效,但在为 curl 生成的代码中无效

我在失眠症中有一个请求。当我通过 Insomnia 发送时,没问题。但是当我生成curl 的源代码时,它向我展示了这一点。

\n
curl --request POST \\\n  --url URL \\\n  --header 'Authorization: bearer XXX' \\\n  --header 'content-type: multipart/form-data; boundary=---011000010111000001101001' \\\n  --cookie JSESSIONID=XXX \\\n  --form datasetFile=@FOLDER/producthierarchyl1-1.zip\n\n{"message":"Bad Request","logref":null,"path":null,"_embedded":{"errors":[{"message":"Required argument [Publisher datasetFile] not specified","logref":null,"path":"/datasetFile","_embedded":{},"_links":{}}]},"_links":{"self":{"href":"/data-api/public-api/v4/datasets/ingestion/","templated":false,"profile":null,"deprecation":null,"title":null,"hreflang":null,"type":null,"name":null}}}\n
Run Code Online (Sandbox Code Playgroud)\n

失眠输出是这样的。

\n
> POST PATH HTTP/2\n> Host: URL\n> user-agent: insomnia/2022.3.0\n> cookie: JSESSIONID=XXX\n> authorization: bearer XXX\n> content-type: multipart/form-data; boundary=X-INSOMNIA-BOUNDARY\n> accept: */*\n> content-length: 407\n\n* STATE: DO => DID handle 0x170404b14008; line 2077 (connection #27)\n* multi changed, check CONNECT_PEND queue!\n* STATE: DID => PERFORMING handle 0x170404b14008; line 2196 (connection …
Run Code Online (Sandbox Code Playgroud)

api curl insomnia

4
推荐指数
1
解决办法
5930
查看次数

我可以在没有ALPN支持的情况下实现http/2服务器吗?

这样,客户端可以在没有ALPN的情况下连接服务器并使用http/2默认值.

那可能吗?

http2 http2-lawyers

3
推荐指数
1
解决办法
1275
查看次数

标签 统计

curl ×9

api ×3

http2 ×2

libcurl ×2

c++ ×1

certificate ×1

cmd ×1

http-1.1 ×1

http2-lawyers ×1

insomnia ×1

kong ×1

php ×1

put ×1

ssl ×1

ssl-certificate ×1

ubuntu ×1