curl get请求_关于http请求与响应

c647a0a44390dfcef2359fff0e916f79.png

废话不说,先上实例

58b4498024f939b9b50f680c85fa6206.png

可以看到,这是curl百度之后得出的一串东西的一部分,现在我就来简单的讲解一下

蓝色方框部分,> 表示请求,< 表示响应

其中标记1、2、3分别表示请求的三部分

  • 第一部分(1),请求行:

get表示请求方法(包括有get,post,put,pach,delete,head,options,trace,)

/ 表示路径,http/1.1 分别表示 协议/版本

我来简单说明一下八种请求方法的区别

  1. GET:只获取数据,不做其他动作
  2. POST:获取,并上传数据
  3. PUT:向服务器上传并更新全部数据,覆盖原来所有数据。
  4. PACH:上传并更新部分数据,不会覆盖原来所有数据。
  5. DELETE:删除标记Request-URI数据。
  6. HEAD:只获取数据的资源信息,并不获取文本。
  7. OPTIONS:请求服务器回传资源所支持的所有HTTP请求方法。
  8. TRACE:请求服务器收到的请求,与OPTIONS一样,一般用于测试服务器。
  • 第二部分(2),请求头:

key: velue形式书写

HOST:域名

User-Agent:浏览器的身份标识字符串,因为我这里以curl命令访问,所以显示curl/7.63.0

Accept:能够接受的回应内容类型,一般为*/*

  • 第三部分(3),回车(就是那个空行,必须有,不能省略)
  • 第四部分,要上传的数据,这里没有,一般get都不会有。

下面标记4、5、6表示响应部分

  • 第一部分(4),响应行:

http/1.1 表示 协议/版本,200 表示http状态码(一般有2XX,3XX,4XX,5XX) ok就是ok

  • 第二部分(5),响应头:

Content-Length:响应主体大小,单位看 Accept-Ranges,bytes就是字节。

Content-Type:响应主体的格式。

  • 第三部分(6),回车(同样是那个空行,必须有,不能省略)
  • 第四部分,响应主体,由于太多的原因我就不截图了。

好了,说了这么多,那么怎么在浏览器又怎么查看这些呢,我来上几个图

cc4189fab2796dceb7c316cc66f1ff49.png

10bb76e159c341c1ac447c152a057901.png

d53e21da7eba8eb8443fb710ee10209b.png

好的,现在大家都明白了吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
curl是一个流行的网络请求库,它支持各种协议,包括HTTP、HTTPS、FTP等。在C++中使用curl进行GET请求带参数的方法如下: 1.首先,需要包含curl库头文件curl/curl.h。 2.创建一个CURL对象,使用curl_easy_init()函数即可。 3.设置请求的URL地址,可以使用curl_easy_setopt()函数设置CURLOPT_URL选项。 4.设置请求参数,可以使用curl_easy_setopt()函数设置CURLOPT_POSTFIELDS选项,将参数以字符串形式传递给它。 5.设置请求的回调函数,该函数将在服务器响应时被调用。使用curl_easy_setopt()函数设置CURLOPT_WRITEFUNCTION选项。 6.执行请求,使用curl_easy_perform()函数即可。 下面是一个简单的例子: ```c++ #include <curl/curl.h> #include <string> size_t write_callback(char* ptr, size_t size, size_t nmemb, std::string* data) { data->append(ptr, size * nmemb); return size * nmemb; } int main() { CURL* curl = curl_easy_init(); if (curl) { std::string url = "http://example.com/api?param1=value1&param2=value2"; curl_easy_setopt(curl, CURLOPT_URL, url.c_str()); std::string post_fields = "field1=value1&field2=value2"; curl_easy_setopt(curl, CURLOPT_POSTFIELDS, post_fields.c_str()); std::string response; curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response); curl_easy_perform(curl); // Do something with the response std::cout << response << std::endl; curl_easy_cleanup(curl); } return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值