CURL常见问题

本文介绍了在实际工作中使用CURL的一些技巧,包括如何增加HTTPHeader、如何增加PostForm数据、如何让CURL记录Cookie等内容。
 CURL的中文资料比较少,下面是实际工作中用到,摸索出来的,记录之。

1、增加HTTP Header
   curl_slist *plist = curl_slist_append(NULL, "Client-Key:m-5be02cd9ddfb11dcaf9700142218fc6e");
   curl_slist_append(plist, "username:winter_445@163.com");
   curl_slist_append(plist, "password:123456");
   curlRet = curl_easy_setopt(m_hCURL, CURLOPT_HTTPHEADER, plist);
   这样即可在HTTP Header中加入上面的内容。

2、增加Post Form的数据
   curlRet = curl_easy_setopt(m_hCURL,CURLOPT_POSTFIELDS, "Client-Key=m-5be02cd9ddfb11dcaf9700142218fc6e&username=winter_445@163.com&password=123456");
   像上面那样,可以在Post表单中加上任意数据。

3、让CURL记录Cookie
   curlRet = curl_easy_setopt(m_hCURL, CURLOPT_COOKIEFILE, "");
   curlRet = curl_easy_setopt(m_hCURL, CURLOPT_COOKIEJAR, "");
   像上面那样设置一下,试验中发现不需要指定cookie文件名它也能工作,具体这两个设置有没会差别,暂不清楚,互联网上也有人提问此问题。

4、Other
### curl 命令使用教程及常见错误解决方法 #### 一、curl 命令的基本功能 `curl` 是一个强大的命令行工具,用于通过 URL 规则与服务器进行文件传输。它支持多种协议(如 HTTP、HTTPS、FTP 等),并且可以执行文件的上传和下载操作[^2]。 基本语法如下: ```bash curl [option] [url] ``` #### 二、curl 的常用选项 以下是 `curl` 的一些常用选项及其功能: 1. **指定请求方式** 使用 `-X` 或 `--request` 指定 HTTP 请求方式(如 GET、POST、PUT 等)。默认情况下,`curl` 使用的是 GET 请求[^1]。 ```bash curl -X POST https://www.example.com ``` 2. **添加请求头信息** 使用 `--header` 或 `-H` 添加自定义的 HTTP 请求头信息。 ```bash curl -H "Content-Type: application/json" https://www.example.com ``` 3. **发送数据** 使用 `--data` 或 `-d` 向服务器发送数据。通常用于 POST 请求。 ```bash curl -X POST https://www.example.com/api \ -H "Content-Type: application/json" \ -d '{"key1":"value1", "key2":"value2"}' ``` 4. **分块下载大文件** 当需要下载较大的文件时,可以通过 `-r` 参数指定下载范围,并将多个部分合并为完整文件[^3]。 ```bash curl -r 0-100 -o part1.zip http://example.com/file.zip curl -r 101-200 -o part2.zip http://example.com/file.zip cat part*.zip > file.zip ``` 5. **检查服务器端口开放情况** 可以通过 `curl` 测试服务器端口是否开放。例如,使用 HTTPS 协议测试目标地址的连通性[^4]。 ```bash curl --location --request 'https://example.com' ``` #### 三、常见错误及解决方法 以下是一些常见的 `curl` 使用问题及其解决方案: 1. **无法解析主机名** 错误信息:`curl: (6) Could not resolve host: example.com` 解决方法:检查 DNS 配置或网络连接,确保域名能够正确解析。 2. **SSL 证书验证失败** 错误信息:`curl: (60) SSL certificate problem: self signed certificate` 解决方法:如果不需要验证 SSL 证书,可以使用 `-k` 或 `--insecure` 忽略证书验证。 ```bash curl -k https://example.com ``` 3. **超时问题** 错误信息:`curl: (28) Connection timed out after 1000 milliseconds` 解决方法:增加超时时间,使用 `--connect-timeout` 设置连接超时时间。 ```bash curl --connect-timeout 30 https://example.com ``` 4. **返回空响应** 如果服务器返回空响应,可能是因为请求头或参数不正确。可以通过 `-v` 或 `--verbose` 查看详细的请求和响应信息。 ```bash curl -v https://example.com ``` #### 四、示例代码 以下是一个完整的 `curl` 示例,演示如何向服务器发送 POST 请求并附加 JSON 数据: ```bash curl -X POST https://www.example.com/api \ -H "Content-Type: application/json" \ -d '{"username":"admin", "password":"123456"}' ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值