`
gelongmei
  • 浏览: 209536 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

curl详细解读

 
阅读更多
http://blog.csdn.net/zzulp/article/details/8018751

##nc -kl 9000
##curl "http://127.0.0.1:7000/ad/v1/ad/display?aa=11" -H "headernews:value" -b "cookie1=value1" -d "a=b" --data @test2 -x 127.0.0.1:9000
##nc内容是
POST http://127.0.0.1:7000/ad/v1/ad/display?aa=11 HTTP/1.1
Host: 127.0.0.1:7000
User-Agent: curl/7.43.0
Accept: */*
Proxy-Connection: Keep-Alive
Cookie: cookie1=value1
headernews:value
Content-Length: 15
Content-Type: application/x-www-form-urlencoded

a=b&filecontent

由此看出post参数是从流中传入

##上传
curl "http://127.0.0.1:7000/ad/v1/ad/display?aa=11" -F "web=@uploadfile;type=text/html" -H "headernews:value" -b "cookie1=value1"  -x 127.0.0.1:9000

POST http://127.0.0.1:7000/ad/v1/ad/display?aa=11 HTTP/1.1
Host: 127.0.0.1:7000
User-Agent: curl/7.43.0
Accept: */*
Proxy-Connection: Keep-Alive
Cookie: cookie1=value1
headernews:value
Content-Length: 197
Expect: 100-continue
Content-Type: multipart/form-data; boundary=------------------------fc0531db039c847d

--------------------------fc0531db039c847d
Content-Disposition: form-data; name="web"; filename="uploadfile"
Content-Type: text/html

uploadfile

--------------------------fc0531db039c847d--

cat uploadfile
uploadfile

###

(mlstart)xhkjdeMacBook-Pro:adserver shimei$ curl "http://127.0.0.1:7000/ad/v1/ad/display?aa=11" -F "web=@uploadfile;type=text/html" -H "headernews:value" -b "cookie1=value1" -d "a=b"  -x 127.0.0.1:9000
Warning: You can only select one HTTP request!
(mlstart)xhkjdeMacBook-Pro:adserver shimei$

由此可看出上传文件和post不能够同时进行,上传文件就是一种post,但不能够同时利用流内容;

####



##curl "http://127.0.0.1:7000/ad/v1/ad/display" --data @test

test是文件名称,是以流的方式post过去



curl是一个访问url的工具,可以用他构造http request报文,且可以解析服务器返回的http response,额外还支持cookie特性,可以用curl完成web浏览器的基本功能。当然curl还支持HTTPS/FTP/FTPS/TELNET/LDAP等协议。本文只探讨其强大的HTTP功能。
通用语法:
curl [option] [URL...]
在处理URL的时候其支持类型于SHELL的名称扩展功能,如http://any.org/archive[1996-1999]/vol[1-4]/part{a,b,c}.html可以生成多个期望的URL
下面介绍选项功能:
不带任何参数时 curl 将返回指定url中的数据并打印在屏幕上
-o out  将指定curl返回保存为out文件,内容从html/jpg到各种MIME类型文件
-O  按服务器上的名称保存下载的文件
-r/--range  from-to 下载指定range内的数据
-C 在保存文件时进行续传
-A/--user-agent  <
>  指定发送请求的用户代理 如 curl -A My-Agent/1.0.0 www.apple.com
-x  ip:port 指定使用的http代理,如curl -x 192.168.1.1:8080 www.apple.com
-D head.txt  将服务器的返回的header保存为文件,头部的cookie也可被保存   curl -D header.txt www.apple.com
-c <file> 保存服务器的cookie文件
-b/--cookie  <name=data>   向服务器提交cookie,若无=则name视为文件名  curl -b cookie.txt www.apple.com
-e url  设置引用头的值
-T localfile  向服务器PUT文件 如curl -T 1.mp3  www.apple.com/upload.php
-d <key=value>  向服务器POST表单数据 如curl -d "order=111&count=2" http://www.apple.com/buy
-F <key=value> 向服务器POST表单 curl -F "web=@index.html;type=text/html" url.com
如果希望从本地文件中获取表单数据,则在文件名前加@ 如 curl -d @data.xml http://www.apple.com
若希望从标准输入获取则用curl -d - http://www.apple.com
-E cert.pem  指定本地证书
-H <header:value>  为HTTP请求设置任意header及值。如curl -H "Connection:keep-alive" http://www.apple.com
-I  构造一个HEAD请求
-X/--request method 用户定义的HTTP请求方法名如 curl -X GET www.baidu.com
--compressed 采用压缩方式接收返回数据
--connect-timeout <s> 设置超时时间
-v 详细输出,包含请求和响应的首部
--retry num
--retry timeo 指定重试的次数和间隔
--tcp-nodelay 打开TCP_NODELAY选项  不进行捎带确认
环境 变量:http_proxy [protocol://]<host>[:port]
分享到:
评论

相关推荐

    OpenStack之Curl使用

    在这种情况下,需要对文档内容进行正确的解读和修正,以保证命令的准确执行。 综上所述,本篇文档主要介绍了如何使用curl工具来操作OpenStack的keystone API,涵盖了从基础的API调用到具体的业务和管理API测试,...

    curl_747_1_ssh2_ssl

    在curl中,SSL/TLS主要用于HTTPS协议,提供端到端的数据加密,确保即使数据在网络中被截获,也无法被解读。在Windows32位环境下,curl.exe通过内置的SSL支持或者与libssh2.dll配合,可以安全地进行HTTPS请求,保证了...

    PHP扩展CURL的用法详解

    本文将对PHP扩展CURL的用法进行详细解读,并涉及多个实用案例。 首先,要使用PHP中的CURL功能,需要确保PHP配置文件php.ini中已经开启了CURL扩展。默认情况下,PHP可能不包含CURL扩展。如果需要开启,通常需要找到...

    php中的curl_multi系列函数使用例子

    接下来,我们将根据步骤详细解读如何使用这些函数。 步骤一:初始化curl_multi句柄 要开始使用curl_multi系列函数,首先需要调用curl_multi_init()函数初始化一个curl_multi资源。 ```php $mh = curl_multi_init();...

    Curl Sonntag-开源

    描述解读: Curl Sonntag 是一个开源软件,专为Curl编程环境设计的轻量级Model-View-Controller (MVC) 框架。MVC是一种软件设计模式,它将应用程序划分为三个主要组件:模型(Model),视图(View)和控制器...

    php通过curl模拟登陆DZ论坛

    本文将详细解读如何使用PHP语言配合libcurl库通过CURL函数模拟登陆DZ(Discuz!)论坛,并且进行数据的采集。 首先,我们需要了解CURL是一个强大的库,它支持多种网络协议,包括但不限于HTTP、HTTPS、FTP等。在PHP中...

    PHP基于CURL发送JSON格式字符串的方法示例

    综上所述,文章详细介绍了如何在PHP中使用CURL库发送JSON格式的数据,同时也提供了一个实用的示例函数post_json_data(),以及接收JSON数据时需要注意的要点。文章还补充了相关工具的推荐,为开发者在处理JSON数据时...

    spring cloud config 和 bus 源码解读

    通过`curl`工具可以测试加密和解密的接口。 然后,`ConfigServerMvcConfiguration`类定义了Config Server的MVC配置。`EnvironmentController`类用于处理配置请求,并提供一个接口让客户端获取配置信息。该控制器中...

    Freeswitch学习笔记

    了解如何配置和解读日志将帮助你更好地管理和维护系统。 这份“Freeswitch学习笔记 - 喧嚣求静.docx”文档很可能会涵盖以上所有知识点,并可能提供详细的配置示例、实战案例以及常见问题解答。通过深入阅读和实践,...

    spring cloud config、bus源码

    Spring Cloud Config/Bus 源码解读 本文将对 Spring Cloud Config/Bus 的源码进行解读,涵盖 Server 端、Client 端、Bus 的运行原理等方面的内容。 一、初始化 在 Spring Cloud Config/Bus 中,初始化的过程主要...

    ArkimeAPI接口文档

    本篇旨在详细解读Arkime API接口文档的关键内容,帮助用户更好地理解并利用这些接口进行数据分析与处理。 #### 二、API调用注意事项 1. **摘要身份验证**:所有API调用均采用摘要身份验证。这意味着在编写代码或...

    让基于 Guzzle 的项目完美无缝兼容 Swoole 协程.rar

    Guzzle 是一个非常流行的 PHP 的 HTTP 客户端,现在各大厂的 SDK 也都开始基于 Guzzle 开发,因为 Swoole 只支持 PHP Stream 的协程 Hook ,而 Guzzle 默认是使用 cURL 扩展的,所以 Mix PHP 开发了 Guzzle Hook,能...

    PHP获取网页内容的方法.pdf

    下面将详细解读这些知识点。 首先,file_get_contents是一个用于从URL读取内容的函数。这个函数是PHP中的一个超全局变量,能够简单快捷地把远程文件下载到本地并存放到字符串变量中。使用file_get_contents时只需要...

    upkg-package-manager-rosetta-stone:upkg:Rosetta Stone的软件包管理器包装:Arch,Red HatFedora,DebianUbuntu,SLESopenSUSE,Gentoocalculate,Solus,Slitaz,Void linux,所有语法都相同。 安装=> curl -sLk http:bit.doupkg | SH

    用户可以通过一个简单的curl命令进行安装,而源代码仓库则包含了项目的所有详细信息,可供开发者或高级用户进行定制和扩展。对于熟悉Linux系统管理和自动化部署的用户,upkg提供了一个非常实用的工具,可以帮助他们...

    libcurl.a静态库(.a文件) android可用,包含armeabi、x86、arm64-v8a、x86_64

    **标签解读:** "libcurl libcurl.a arm64-v8a arm64 armeabi" 这些标签强调了libcurl库的关键特征。libcurl是一个开源的C库,用于处理各种互联网协议的数据传输。标签中的"arm64-v8a"和"arm64"指的是64位的Android...

    ---

    - "PHP_Curl_Tutorial.md" - Markdown格式的教程,讲解了PHP的cURL库,用于执行HTTP请求和访问远程资源。 通过学习这些文件,您可以全面理解PHP的基础和高级特性,包括基本语法、函数使用、数据库交互、用户状态...

    悟空CRM安装出现Fatal error Allowed memory size of 8388608 bytes的解决办法

    以上就是对于在安装悟空CRM时可能遇到的“Fatal error: Allowed memory size of 8388608 bytes”问题的详细解读和解决办法。希望这些信息能够帮助用户在安装过程中遇到类似问题时,能够迅速定位问题原因并采取有效...

    web自动化测试技术交流.pptx

    下面是对该资源的详细解读和知识点总结: 一、自动化测试的概念和目标 自动化测试是指使用软件工具来执行测试过程,以提高测试效率和减少人工测试的工作量。自动化测试的目标是提高测试效率、降低成本和提高测试的...

    ActivePerl-5.25.1

    至于压缩包中的文件名"ActivePerl-5.24.1.2402-MSWin32-x64-401627",我们可以解读如下: - "5.24.1":这与标题中的版本号略有不同,可能是发布时的版本信息有误,或者这个压缩包包含了5.24.1而不是5.25.1的版本。 -...

Global site tag (gtag.js) - Google Analytics