范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

linux下最全curl命令使用方式学习和拓展

  为什么要使用curl命令?
  curl命令可以帮助我们在linux服务内部通讯,排查接口是否能够正确调用,外网的接口是否有防火墙限制,内网的请求可以快速帮我们获取接口参数返回,并且调试程序代码,在局域网,或者内网的时候只能在内网调试,这个时候curl命令足以支持我们完成所有调试和测试。
  curl 能做什么?
  这是官网的介绍:记住学习一个技术一定要看官网的文档和介绍,不要一上手就去百度,百度只会让你成为一个基础的代码搬运工,要养成去官网看文档的习惯。
  curl官网:https://curl.se/docs/httpscripting.html
  下面引用下官网的脚本介绍和使用:使用 Curl 编写 HTTP 请求脚本的艺术
  背景
  本文档假定您熟悉 HTML 和一般网络。
  越来越多的应用程序迁移到 Web 使得"HTTP 脚本"的请求和需求更加频繁。能够自动从网络中提取信息、伪造用户、向网络服务器发布或上传数据都是当今重要的任务。
  Curl 是一个用于执行各种 URL 操作和传输的命令行工具,但本文档将重点介绍如何在执行 HTTP 请求时使用它以获取乐趣和利润。我将假设您知道如何调用curl --help或curl --manual获取有关它的基本信息。
  Curl 并不是为你做所有事情。它发出请求,获取数据,发送数据并检索信息。您可能需要使用某种脚本语言或重复的手动调用将所有内容粘合在一起。
  HTTP 协议
  HTTP 是用于从 Web 服务器获取数据的协议。它是一个建立在 TCP/IP 之上的简单协议。该协议还允许使用几种不同的方法将信息从客户端发送到服务器,如下所示。
  HTTP 是由客户端发送到服务器以请求特定操作的纯 ASCII 文本行,然后服务器在实际请求的内容发送到客户端之前回复几行文本。
  客户端 curl 发送一个 HTTP 请求。请求包含一个方法(如 GET、POST、HEAD 等)、许多请求标头,有时还包含一个请求正文。HTTP 服务器以状态行(指示事情是否顺利)、响应标头以及最常见的响应正文进行响应。"body"部分是您请求的纯数据,例如实际的 HTML 或图像等。
  见协议
  使用 curl 的选项--verbose(-v作为一个简短的选项)将显示 curl 发送到服务器的命令类型,以及一些其他信息文本。
  --verbose是调试甚至理解 curl<-> 服务器交互是最有用的选项。
  有时甚至--verbose是不够的。然后提供更多细节,因为它们显示了--tracecurl发送和接收的所有内容。像这样使用它:--trace-ascii
  curl --trace-ascii debugdump.txt http://www.example.com/
  看时间
  很多时候,您可能想知道到底是什么时间,或者您只想知道传输中两点之间的毫秒数。对于这些情况以及其他类似情况,--trace-time您需要选择该选项。它会将时间添加到每个跟踪输出行:
  curl --trace-ascii d.txt --trace-time http://example.com/
  查看响应
  默认情况下 curl 将响应发送到标准输出。您需要将其重定向到某个地方以避免这种情况,通常是使用 -oor完成的-O。
  网址
  规格
  统一资源定位符格式是您指定 Internet 上特定资源地址的方式。你知道这些,你已经看过像https://curl.se或https://yourbank.com这样的 URL一百万次。RFC 3986 是规范规范。是的,正式名称不是 URL,而是 URI。
  主持人
  主机名通常使用 DNS 或 /etc/hosts 文件解析为 IP 地址,这就是 curl 将与之通信的内容。或者,您可以直接在 URL 中指定 IP 地址而不是名称。
  对于开发和其他尝试情况,您可以使用 curl 的--resolve选项为主机名指向不同的 IP 地址,而不是其他情况下使用的 IP 地址:
  curl --resolve www.example.org:80:127.0.0.1 http://www.example.org/
  端口号
  curl 支持的每个协议都在默认端口号上运行,无论是通过 TCP 还是在某些情况下是 UDP。通常您不必考虑这一点,但有时您会在其他端口或类似端口上运行测试服务器。然后,您可以在 URL 中使用冒号和紧跟主机名的数字指定端口号。就像对端口 1234 执行 HTTP 时一样:
  curl http://www.example.org:1234/
  您在 URL 中指定的端口号是服务器用来提供其服务的端口号。有时您可能会使用代理,然后您可能需要将代理的端口号与 curl 连接到服务器所需的端口号分开。就像在端口 4321 上使用 HTTP 代理一样:
  curl --proxy http://proxy.example.org:4321 http://remote.example.org/
  用户名和密码
  某些服务设置为需要 HTTP 身份验证,然后您需要提供名称和密码,然后根据使用的确切身份验证协议以各种方式将其传输到远程站点。
  您可以选择在 URL 中插入用户名和密码,也可以单独提供:
  curl http://user:password@example.org/
  或者
  curl -u user:password http://example.org/
  您需要注意的是,这种 HTTP 身份验证并不是当今面向用户的网站通常所做的和要求的。他们倾向于使用表格和cookies。
  路径部分
  路径部分只是被发送到服务器以请求它发回相关的响应。路径是在主机名和可能的端口号后面的斜杠右侧的内容。
  获取页面
  得到
  使用 HTTP 进行的最简单和最常见的请求/操作是获取 URL。URL 本身可以引用网页、图像或文件。客户端向服务器发出 GET 请求并接收它请求的文档。如果您发出命令行
  curl https://curl.se
  您会在终端窗口中返回一个网页。该 URL 包含的整个 HTML 文档。
  所有 HTTP 回复都包含一组通常隐藏的响应头,使用 curl 的--include( -i) 选项来显示它们以及文档的其余部分。
  头
  --head您可以使用( ) 选项仅向远程服务器询问标头,-I这将使 curl 发出 HEAD 请求。在某些特殊情况下,服务器拒绝 HEAD 方法,而另一些仍然有效,这是一种特殊的烦恼。
  HEAD 方法的定义和制作使得服务器返回的标题与它对 GET 所做的完全一样,但没有正文。这意味着您可能会Content-Length:在响应标头中看到 a,但在 HEAD 响应中不能有实际的正文。
  单个命令行中的多个 URL
  单个 curl 命令行可能涉及一个或多个 URL。最常见的情况可能是只使用一个,但您可以指定任意数量的 URL。是的,任何。无限。然后,您将收到针对所有给定 URL 的重复请求。
  例如,发送两个 GET:
  curl http://url1.example.com http://url2.example.com
  如果您使用--dataPOST 到 URL,则使用多个 URL 意味着您将相同的 POST 发送到所有给定的 URL。
  例如,发送两个 POST:
  curl --data name=curl http://url1.example.com http://url2.example.com
  单个命令行中的多个 HTTP 方法
  有时您需要在一个命令行中对多个 URL 进行操作,并对每个 URL 执行不同的 HTTP 方法。为此,您将享受该--next选项。它基本上是一个分隔符,将一堆选项与下一个选项分开。之前的所有 URL--next都将获得相同的方法,并将所有 POST 数据合并为一个。
  当 curl--next在命令行上到达时,它将重置方法和 POST 数据并允许新的设置。
  也许最好用几个例子来说明这一点。要先发送一个 HEAD,然后再发送一个 GET:
  curl -I http://example.com --next http://example.com
  要先发送 POST,然后再发送 GET:
  curl -d score=10 http://example.com/post.cgi --next http://example.com/results.html
  HTML 表单
  表格解释
  表单是网站呈现 HTML 页面的一般方式,其中包含供用户输入数据的字段,然后按某种"确定"或"提交"按钮将该数据发送到服务器。然后服务器通常使用发布的数据来决定如何行动。就像使用输入的词在数据库中搜索,或在错误跟踪系统中添加信息,在地图上显示输入的地址或使用信息作为登录提示验证用户是否可以查看它的内容查看。
  当然,服务器端必须有某种程序来接收您发送的数据。你不能凭空发明一些东西。
  得到
  GET-form 使用 GET 方法,如 HTML 中指定的那样:
  在您喜欢的浏览器中,此表单将显示一个文本框以供填写,并带有一个标有"确定"的按钮。如果您填写"1905"并按 OK 按钮,您的浏览器将创建一个新的 URL 来为您获取。该 URL 将junk.cgi?birthyear=1905&press=OK附加到前一个 URL 的路径部分。
  如果在页面上看到原始表单www.example.com/when/birth.html,您将获得的第二页将变为www.example.com/when/junk.cgi?birthyear=1905&press=OK。
  大多数搜索引擎都是这样工作的。
  要让 curl 为您发送 GET 表单,只需输入预期的创建 URL:
  curl "http://www.example.com/when/junk.cgi?birthyear=1905&press=OK"
  邮政
  GET 方法使所有输入字段名称都显示在浏览器的 URL 字段中。当您希望能够使用给定数据为该页面添加书签时,这通常是一件好事,但如果您在其中一个字段中输入了秘密信息,或者如果有大量字段创建了一个长且不可读的网址。
  然后 HTTP 协议提供 POST 方法。这样,客户端发送的数据与 URL 分开,因此您不会在 URL 地址字段中看到任何数据。
  该表单看起来与前一个类似:
  并且要使用 curl 来发布此表单,并填写与以前相同的数据,我们可以这样做:
  curl --data "birthyear=1905&press=%20OK%20" http://www.example.com/when/junk.cgi
  这种 POST 将使用 Content-Typeapplication/x-www-form-urlencoded并且是使用最广泛的 POST 类型。
  您发送到服务器的数据必须已经正确编码,curl 不会为您这样做。例如,如果您希望数据包含一个空格,则需要将该空格替换为%20等。不遵守此规定很可能会导致您的数据被错误接收并弄乱。
  最近的 curl 版本实际上可以为您对 POST 数据进行 url 编码,如下所示:
  curl --data-urlencode "name=I am Daniel" http://www.example.com
  如果您--data在命令行上重复多次,curl 将连接所有给定的数据段 - 并&在每个数据段之间放置一个符号。
  文件上传 POST
  早在 1995 年末,他们就定义了另一种通过 HTTP 发布数据的方式。它记录在 RFC 1867 中,为什么这种方法有时被称为 RFC1867-posting。
  该方法主要是为了更好地支持文件上传而设计的。允许用户上传文件的表单可以用 HTML 编写如下:
  这清楚地表明即将发送的 Content-Type 是multipart/form-data.
  要使用 curl 发布到这样的表单,请输入如下命令行:
  curl --form upload=@localfilename --form press=OK [URL]
  隐藏字段
  基于 HTML 的应用程序在页面之间传递状态信息的常用方法是向表单添加隐藏字段。隐藏字段已经填写,它们不会显示给用户,它们会像所有其他字段一样被传递。
  具有一个可见字段、一个隐藏字段和一个提交按钮的类似示例表单可能如下所示:
  要使用 curl 发布此内容,您无需考虑字段是否隐藏。卷曲它们都是一样的:
  curl --data "birthyear=1905&press=OK&person=daniel" [URL]
  弄清楚 POST 的样子
  当您要填写表单并使用 curl 而不是浏览器将其发送到服务器时,您当然有兴趣完全按照浏览器的方式发送 POST。
  一个简单的查看方法是将带有表单的 HTML 页面保存在本地磁盘上,将"方法"修改为 GET,然后按提交按钮(如果需要,您也可以更改操作 URL) .
  然后,您将清楚地看到数据被附加到 URL 中,并用 -?字母分隔,因为 GET 表单应该如此。
  HTTP 上传
  放
  也许将数据上传到 HTTP 服务器的最佳方式是使用 PUT。话又说回来,这当然需要有人在知道如何接收 HTTP PUT 流的服务器端放置一个程序或脚本。
  使用 curl 将文件放入 HTTP 服务器:
  curl --upload-file uploadfile http://www.example.com/receive.cgi
  HTTP 身份验证
  基本认证
  HTTP 身份验证能够告诉服务器您的用户名和密码,以便它可以验证您是否被允许执行您正在执行的请求。HTTP 中使用的基本身份验证(默认情况下 curl 使用的类型)是基于纯文本的,这意味着它发送的用户名和密码只是稍微混淆,但仍然可以被任何在你和远程服务器之间的网络上嗅探的人完全读取。
  告诉 curl 使用用户和密码进行身份验证:
  curl --user name:password http://www.example.com
  其他认证
  该站点可能需要不同的身份验证方法(检查服务器返回的标头),然后--ntlm, --digest,--negotiate甚至--anyauth可能是适合您的选项。
  代理身份验证
  有时您的 HTTP 访问只能通过使用 HTTP 代理获得。这似乎在各个公司中尤为常见。HTTP 代理可能需要自己的用户名和密码才能允许客户端访问 Internet。要使用 curl 指定那些,请运行以下命令:
  curl --proxy-user proxyuser:proxypassword curl.se
  如果您的代理需要使用 NTLM 方法完成身份验证,请使用--proxy-ntlm,如果它需要 Digest 使用--proxy-digest。
  如果您使用这些用户+密码选项中的任何一个,但省略了密码部分,curl 将交互提示输入密码。
  隐藏凭据
  请注意,当程序运行时,在列出系统正在运行的进程时,可能会看到它的参数。因此,如果您将密码作为纯命令行选项传递,其他用户可能会看到您的密码。有办法规避这一点。
  值得注意的是,虽然这是 HTTP 身份验证的工作方式,但许多网站在提供登录等时不会使用此概念。有关详细信息,请参阅下面的 Web 登录章节。
  更多 HTTP 标头
  推荐人
  HTTP 请求可能包含一个"referer"字段(是的,它拼写错误),可用于判断客户端从哪个 URL 获取到该特定资源。一些程序/脚本会检查请求的引用字段,以验证这不是来自外部站点或未知页面。虽然这是一种检查容易伪造的东西的愚蠢方法,但许多脚本仍然这样做。使用 curl,您可以在引用字段中放入任何您想要的内容,从而更容易欺骗服务器为您的请求提供服务。
  使用 curl 设置引用字段:
  curl --referer http://www.example.come http://www.example.com
  用户代理
  与referer 字段类似,所有HTTP 请求都可以设置User-Agent 字段。它命名正在使用的用户代理(客户端)。许多应用程序使用此信息来决定如何显示页面。愚蠢的网络程序员试图为不同浏览器的用户制作不同的页面,以使它们看起来最适合他们的特定浏览器。他们通常也做不同类型的 JavaScript、VBScript 等。
  有时,您会看到使用 curl 获取页面不会返回您在使用浏览器获取页面时看到的相同页面。然后你知道是时候设置用户代理字段来欺骗服务器,让服务器认为你是那些浏览器之一。
  要使 curl 在 Windows 2000 机器上看起来像 Internet Explorer 5:
  curl --user-agent "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" [URL]
  或者为什么不看起来像在旧的 Linux 机器上使用 Netscape 4.73:
  curl --user-agent "Mozilla/4.73 [en] (X11; U; Linux 2.2.15 i686)" [URL]
  重定向
  位置标头
  当从服务器请求资源时,来自服务器的回复可能包括关于浏览器下一步应该去哪里找到该页面的提示,或者一个新页面保留新生成的输出。告诉浏览器重定向的标头是Location:.
  默认情况下, Curl 不跟随Location:标头,而是以与显示所有 HTTP 回复相同的方式简单地显示此类页面。但是,它确实具有一个选项,可以使它尝试跟随Location:指针。
  告诉 curl 跟随一个位置:
  curl --location http://www.example.com
  如果您使用 curl 发布到一个立即将您重定向到另一个页面的站点,您可以安全地使用--location( -L) 和--data/--form一起。Curl 只会在第一个请求中使用 POST,然后在以下操作中恢复为 GET。
  其他重定向
  浏览器通常支持至少两种 curl 不支持的其他重定向方式:首先,html 可能包含一个元刷新标签,要求浏览器在设定的秒数后加载特定的 URL,或者它可能使用 JavaScript 来完成。
  饼干
  饼干基础
  Web 浏览器执行"客户端状态控制"的方式是使用 cookie。Cookie 只是带有相关内容的名称。cookie 由服务器发送给客户端。服务器告诉客户端它想要返回 cookie 的路径和主机名,它还发送一个过期日期和更多属性。
  当客户端使用先前在接收到的 cookie 中指定的名称和路径与服务器通信时,客户端将 cookie 及其内容发送回服务器,当然除非它们已过期。
  许多应用程序和服务器使用此方法将一系列请求连接到单个逻辑会话中。为了能够在这种情况下使用 curl,我们必须能够以 Web 应用程序期望的方式记录和发送回 cookie。浏览器处理它们的方式相同。
  饼干选项
  使用 curl 获取页面时向服务器发送一些 cookie 的最简单方法是在命令行中添加它们,例如:
  curl --cookie "name=Daniel" http://www.example.com
  Cookies 作为常见的 HTTP 标头发送。这是实用的,因为它允许 curl 仅通过记录标题来记录 cookie。使用--dump-header( -D) 选项使用 curl 记录 cookie,例如:
  curl --dump-header headers_and_cookies http://www.example.com
  (请注意,--cookie-jar下面描述的选项是存储 cookie 的更好方法。)
  如果您想重新连接到服务器并使用从先前连接中存储的 cookie(或手动制作以欺骗服务器相信您有先前的连接,Curl 内置了一个完整的 cookie 解析引擎,则可以使用该引擎)。要使用以前存储的 cookie,您可以运行 curl,如下所示:
  curl --cookie stored_cookies_in_file http://www.example.com
  --cookie当您使用该选项时,Curl 的"cookie 引擎"将被启用。如果您只想让 curl 了解收到的 cookie,请使用--cookie不存在的文件。例如,如果你想让 curl 理解来自页面的 cookie 并跟踪一个位置(因此可能会发回它收到的 cookie),你可以像这样调用它:
  curl --cookie nada --location http://www.example.com
  Curl 能够读取和写入使用 Netscape 和 Mozilla 曾经使用的相同文件格式的 cookie 文件。这是在脚本或调用之间共享 cookie 的便捷方式。( --cookie)-b开关自动检测给定文件是否是这样的 cookie 文件并对其进行解析,并且通过使用--cookie-jar( -c) 选项,您将使 curl 在操作结束时写入一个新的 cookie 文件:
  curl --cookie cookies.txt --cookie-jar newcookies.txt http://www.example.com
  HTTPS
  HTTPS 是 HTTP 安全的
  有几种方法可以进行安全的 HTTP 传输。到目前为止,最常用的协议是通常称为 HTTPS、HTTP over SSL 的协议。SSL 对通过网络发送和接收的所有数据进行加密,从而使攻击者更难窥探敏感信息。
  SSL(或称为该标准的最新版本的 TLS)提供了大量高级功能,以允许加密 HTTP 所需的所有加密和关键基础设施机制。
  当构建使用 TLS 库时,Curl 支持加密提取,并且可以构建它以使用相当大的一组库中的curl -V一个 - 将显示您的 curl 是为使用哪个库而构建的(如果有的话!)。要从 HTTPS 服务器获取页面,只需运行 curl,如下所示:
  curl https://secure.example.com
  证书
  在 HTTPS 世界中,您使用证书来验证您是您声称的那个人,作为普通密码的补充。Curl 支持客户端证书。所有证书都使用密码锁定,您需要输入密码才能让 curl 使用证书。密码短语可以在命令行中指定,如果没有,则在 curl 查询时以交互方式输入。在 HTTPS 服务器上使用带有 curl 的证书,例如:
  curl --cert mycert.pem https://secure.example.com
  curl 还尝试通过根据本地存储的 CA 证书包验证服务器的证书来验证服务器是否是它声称的身份。验证失败将导致 curl 拒绝连接。然后您必须使用--insecure( -k) 以防您想告诉 curl 忽略无法验证服务器。
  有关服务器证书验证和 ca 证书捆绑的更多信息,请参阅SSLCERTS 文档。
  有时您可能会得到自己的 CA 证书存储,然后您可以告诉 curl 使用它来验证服务器的证书:
  curl --cacert ca-bundle.pem https://example.com/
  自定义请求元素
  修改方法和标头
  做一些花哨的事情,您可能需要添加或更改单个 curl 请求的元素。
  例如,您可以将 POST 请求更改为 PROPFIND 并将数据发送为Content-Type: text/xml(而不是默认的 Content-Type),如下所示:
  curl --data "" --header "Content-Type: text/xml" --request PROPFIND example.com
  您可以通过提供没有内容的默认标题来删除默认标题。就像您可以通过切断 Host: 标头来破坏请求一样:
  curl --header "Host:" http://www.example.com
  您可以以相同的方式添加标题。您的服务器可能需要一个Destination:标头,您可以添加它:
  curl --header "Destination: http://nowhere" http://example.com
  更多关于改变方法
  需要注意的是,curl 根据请求的操作自行选择使用哪些方法。-d会做 POST,-I会做 HEAD 等等。如果使用--request/-X选项,您可以更改 curl 选择的方法关键字,但不会修改 curl 的行为。这意味着如果您例如使用 -d "data" 进行 POST,您可以将方法修改为PROPFINDwith-X并且 curl 仍会认为它发送 POST 。-X POST您可以通过简单地添加如下命令行将普通 GET 更改为 POST 方法:
  curl -X POST http://example.org/
  ...但是 curl 仍然会像发送 GET 一样思考和行动,因此它不会发送任何请求正文等。
  网页登录
  一些登录技巧
  虽然不仅仅是与 HTTP 相关,但它仍然会给很多人带来问题,所以这里是关于绝大多数登录表单如何工作以及如何使用 curl 登录到它们的执行概要。
  还可以注意到,要以自动化方式正确执行此操作,您肯定需要编写脚本并执行多个 curl 调用等。
  首先,服务器主要使用 cookie 来跟踪客户端的登录状态,因此您需要捕获在响应中收到的 cookie。然后,许多网站还在登录页面上设置了一个特殊的 cookie(以确保您通过他们的登录页面到达那里),因此您应该养成首先获取登录表单页面以捕获那里设置的 cookie 的习惯。
  一些基于 Web 的登录系统具有不同数量的 JavaScript,有时它们使用此类代码来设置或修改 cookie 内容。可能他们这样做是为了防止编程登录,就像本手册描述了如何......无论如何,如果阅读代码不足以让您手动重复该行为,那么捕获浏览器完成的 HTTP 请求并分析发送的 cookie 通常是一种工作方法,用于解决如何缩短 JavaScript 所需的时间。
  在登录的实际标签中,许多网站填写随机/会话或其他秘密生成的隐藏标签,您可能需要先捕获登录表单的 HTML 代码并提取所有隐藏字段才能正确执行登录 POST。请记住,在普通 POST 中发送时,内容需要进行 URL 编码。
  调试
  一些调试技巧
  很多时候,当您在站点上运行 curl 时,您会注意到该站点对您的 curl 请求的响应方式似乎与它对浏览器的响应方式不同。
  然后你需要开始让你的 curl 请求更类似于浏览器的请求:
  使用该--trace-ascii选项来存储请求的完整详细日志,以便于分析和更好地理解
  确保在需要时检查并使用 cookie(阅读--cookie和写作--cookie-jar)
  将 user-agent (with -A) 设置为一个,就像最近流行的浏览器一样
  -E像浏览器设置的那样设置引用者(带)
  如果您使用 POST,请确保以与浏览器相同的顺序发送所有字段。
  检查浏览器的功能
  确保您正确执行此操作的一个好帮手是 Web 浏览器的开发人员工具,可让您查看您发送和接收的所有标头(即使使用 HTTPS)。
  更原始的方法是使用 Wireshark 或 tcpdump 等工具捕获网络上的 HTTP 流量,并检查浏览器发送和接收的标头。(HTTPS 强制您使用它SSLKEYLOGFILE来执行此操作。)
  参数帮助命令:[root@master ~]# curl -h  Usage: curl [options...]   Options: (H) means HTTP/HTTPS only, (F) means FTP only  --anyauth Pick "any" authentication method (H)  -a, --append Append to target file when uploading (F/SFTP)  --basic Use HTTP Basic Authentication (H)  --cacert FILE CA certificate to verify peer against (SSL)  --capath DIR CA directory to verify peer against (SSL)  -E, --cert CERT[:PASSWD] Client certificate file and password (SSL)  --cert-type TYPE Certificate file type (DER/PEM/ENG) (SSL)  --ciphers LIST SSL ciphers to use (SSL)  --compressed Request compressed response (using deflate or gzip)  -K, --config FILE Specify which config file to read  --connect-timeout SECONDS Maximum time allowed for connection  -C, --continue-at OFFSET Resumed transfer offset  -b, --cookie STRING/FILE String or file to read cookies from (H)  -c, --cookie-jar FILE Write cookies to this file after operation (H)  --create-dirs Create necessary local directory hierarchy  --crlf Convert LF to CRLF in upload  --crlfile FILE Get a CRL list in PEM format from the given file  -d, --data DATA HTTP POST data (H)  --data-ascii DATA HTTP POST ASCII data (H)  --data-binary DATA HTTP POST binary data (H)  --data-urlencode DATA HTTP POST data url encoded (H)  --delegation STRING GSS-API delegation permission  --digest Use HTTP Digest Authentication (H)  --disable-eprt Inhibit using EPRT or LPRT (F)  --disable-epsv Inhibit using EPSV (F)  -D, --dump-header FILE Write the headers to this file  --egd-file FILE EGD socket path for random data (SSL)  --engine ENGINGE Crypto engine (SSL). "--engine list" for list  -f, --fail Fail silently (no output at all) on HTTP errors (H)  -F, --form CONTENT Specify HTTP multipart POST data (H)  --form-string STRING Specify HTTP multipart POST data (H)  --ftp-account DATA Account data string (F)  --ftp-alternative-to-user COMMAND String to replace "USER [name]" (F)  --ftp-create-dirs Create the remote dirs if not present (F)  --ftp-method [MULTICWD/NOCWD/SINGLECWD] Control CWD usage (F)  --ftp-pasv Use PASV/EPSV instead of PORT (F)  -P, --ftp-port ADR Use PORT with given address instead of PASV (F)  --ftp-skip-pasv-ip Skip the IP address for PASV (F)  --ftp-pret Send PRET before PASV (for drftpd) (F)  --ftp-ssl-ccc Send CCC after authenticating (F)  --ftp-ssl-ccc-mode ACTIVE/PASSIVE Set CCC mode (F)  --ftp-ssl-control Require SSL/TLS for ftp login, clear for transfer (F)  -G, --get Send the -d data with a HTTP GET (H)  -g, --globoff Disable URL sequences and ranges using {} and []  -H, --header LINE Custom header to pass to server (H)  -I, --head Show document info only  -h, --help This help text  --hostpubmd5 MD5 Hex encoded MD5 string of the host public key. (SSH)  -0, --http1.0 Use HTTP 1.0 (H)  --ignore-content-length Ignore the HTTP Content-Length header  -i, --include Include protocol headers in the output (H/F)  -k, --insecure Allow connections to SSL sites without certs (H)  --interface INTERFACE Specify network interface/address to use  -4, --ipv4 Resolve name to IPv4 address  -6, --ipv6 Resolve name to IPv6 address  -j, --junk-session-cookies Ignore session cookies read from file (H)  --keepalive-time SECONDS Interval between keepalive probes  --key KEY Private key file name (SSL/SSH)  --key-type TYPE Private key file type (DER/PEM/ENG) (SSL)  --krb LEVEL Enable Kerberos with specified security level (F)  --libcurl FILE Dump libcurl equivalent code of this command line  --limit-rate RATE Limit transfer speed to this rate  -l, --list-only List only names of an FTP directory (F)  --local-port RANGE Force use of these local port numbers  -L, --location Follow redirects (H)  --location-trusted like --location and send auth to other hosts (H)  -M, --manual Display the full manual  --mail-from FROM Mail from this address  --mail-rcpt TO Mail to this receiver(s)  --mail-auth AUTH Originator address of the original email  --max-filesize BYTES Maximum file size to download (H/F)  --max-redirs NUM Maximum number of redirects allowed (H)  -m, --max-time SECONDS Maximum time allowed for the transfer  --metalink Process given URLs as metalink XML file  --negotiate Use HTTP Negotiate Authentication (H)  -n, --netrc Must read .netrc for user name and password  --netrc-optional Use either .netrc or URL; overrides -n  --netrc-file FILE Set up the netrc filename to use  -N, --no-buffer Disable buffering of the output stream  --no-keepalive Disable keepalive use on the connection  --no-sessionid Disable SSL session-ID reusing (SSL)  --noproxy List of hosts which do not use proxy  --ntlm Use HTTP NTLM authentication (H)  -o, --output FILE Write output to  instead of stdout  --pass PASS Pass phrase for the private key (SSL/SSH)  --post301 Do not switch to GET after following a 301 redirect (H)  --post302 Do not switch to GET after following a 302 redirect (H)  --post303 Do not switch to GET after following a 303 redirect (H)  -#, --progress-bar Display transfer progress as a progress bar  --proto PROTOCOLS Enable/disable specified protocols  --proto-redir PROTOCOLS Enable/disable specified protocols on redirect  -x, --proxy [PROTOCOL://]HOST[:PORT] Use proxy on given port  --proxy-anyauth Pick "any" proxy authentication method (H)  --proxy-basic Use Basic authentication on the proxy (H)  --proxy-digest Use Digest authentication on the proxy (H)  --proxy-negotiate Use Negotiate authentication on the proxy (H)  --proxy-ntlm Use NTLM authentication on the proxy (H)  -U, --proxy-user USER[:PASSWORD] Proxy user and password  --proxy1.0 HOST[:PORT] Use HTTP/1.0 proxy on given port  -p, --proxytunnel Operate through a HTTP proxy tunnel (using CONNECT)  --pubkey KEY Public key file name (SSH)  -Q, --quote CMD Send command(s) to server before transfer (F/SFTP)  --random-file FILE File for reading random data from (SSL)  -r, --range RANGE Retrieve only the bytes within a range  --raw Do HTTP "raw", without any transfer decoding (H)  -e, --referer Referer URL (H)  -J, --remote-header-name Use the header-provided filename (H)  -O, --remote-name Write output to a file named as the remote file  --remote-name-all Use the remote file name for all URLs  -R, --remote-time Set the remote file"s time on the local output  -X, --request COMMAND Specify request command to use  --resolve HOST:PORT:ADDRESS Force resolve of HOST:PORT to ADDRESS  --retry NUM Retry request NUM times if transient problems occur  --retry-delay SECONDS When retrying, wait this many seconds between each  --retry-max-time SECONDS Retry only within this period  -S, --show-error Show error. With -s, make curl show errors when they occur  -s, --silent Silent mode. Don"t output anything  --socks4 HOST[:PORT] SOCKS4 proxy on given host + port  --socks4a HOST[:PORT] SOCKS4a proxy on given host + port  --socks5 HOST[:PORT] SOCKS5 proxy on given host + port  --socks5-hostname HOST[:PORT] SOCKS5 proxy, pass host name to proxy  --socks5-gssapi-service NAME SOCKS5 proxy service name for gssapi  --socks5-gssapi-nec Compatibility with NEC SOCKS5 server  -Y, --speed-limit RATE Stop transfers below speed-limit for "speed-time" secs  -y, --speed-time SECONDS Time for trig speed-limit abort. Defaults to 30  --ssl Try SSL/TLS (FTP, IMAP, POP3, SMTP)  --ssl-reqd Require SSL/TLS (FTP, IMAP, POP3, SMTP)  -2, --sslv2 Use SSLv2 (SSL)  -3, --sslv3 Use SSLv3 (SSL)  --ssl-allow-beast Allow security flaw to improve interop (SSL)  --stderr FILE Where to redirect stderr. - means stdout  --tcp-nodelay Use the TCP_NODELAY option  -t, --telnet-option OPT=VAL Set telnet option  --tftp-blksize VALUE Set TFTP BLKSIZE option (must be >512)  -z, --time-cond TIME Transfer based on a time condition  -1, --tlsv1 Use => TLSv1 (SSL)  --tlsv1.0 Use TLSv1.0 (SSL)  --tlsv1.1 Use TLSv1.1 (SSL)  --tlsv1.2 Use TLSv1.2 (SSL)  --trace FILE Write a debug trace to the given file  --trace-ascii FILE Like --trace but without the hex output  --trace-time Add time stamps to trace/verbose output  --tr-encoding Request compressed transfer encoding (H)  -T, --upload-file FILE Transfer FILE to destination  --url URL URL to work with  -B, --use-ascii Use ASCII/text transfer  -u, --user USER[:PASSWORD] Server user and password  --tlsuser USER TLS username  --tlspassword STRING TLS password  --tlsauthtype STRING TLS authentication type (default SRP)  --unix-socket FILE Connect through this UNIX domain socket  -A, --user-agent STRING User-Agent to send to server (H)  -v, --verbose Make the operation more talkative  -V, --version Show version number and quit  -w, --write-out FORMAT What to output after completion  --xattr Store metadata in extended file attributes  -q If used as the first parameter disables .curlrc
  curl最全命令使用介绍:https://curl.se/docs/manpage.html
  curl最全基础教程使用方式:https://curl.se/docs/manual.html
  常用的4种方式:post ,get,delete.putcurl get方式:curl url 直接访问curl -o url 下载
  get 加请求头-X 请求方式-H 请求头-v 显示请求信息-d请求体
  curl -X GET -H "Content-type: application/json" -H "Content-Type: application/json" -d "{"excelExportColumnList":[{"fieldName":"orderCode","title":"订单号"}],"excelName":"充电订单记录导出.xlsx","queryParams":{"cacheKey":"cdf8a3da-cf96-4d8b-8001-0e3802a25872"}}
  " "http://*******/api/charge/report/searchChargerOrder"
  post 方式带token访问(post方式参数和get一样)
  curl -X POST -H "Authorization:{{4_5_Fe33QEGRSnh7Taotz4DLscmuNye02f8dyHYj_Jw.jQfVt4l6Xp7yUdtNxqdTpKXNbgUEmezd1zBuRSAK1Iw}}" -H "Content-Type: application/json" -d "{"name": "vipTest1"}" url
  put请求:服务注册发现用的比较多
  curl -X PUT -H "Content-Type: application/json" -d "{"key1":"value"}" "YOUR_URI"
  delete请求:
  curl -v -X DELETE url
  看过我自己写的请求,只是基础使用,具体的方式都在curl官网,教程操作文档很全,我介绍了我们常用使用curl的方式,当然还有证书,代理,其他协议的使用,感兴趣的可以自己去官网研究下,curl支持脚本方式调用,不仅仅支持xshell脚本,还有代码。
  ————没有与生俱来的天赋,都是后天的努力拼搏 (我是小杨,谢谢你的关注和支持)

三峡游轮华夏神女2号(重庆至宜昌)线路指南和价格分享长江三峡游轮旅游既轻松又优雅自在,每天随波而行,在山水间享受惬意时光,能够远离城市喧嚣,走近自然放松身心。今天给大家分享的是三峡游轮华夏神女2号从重庆至宜昌的线路和价格情况。一起来春风吹拂有风的地方尹玉婷杨立娇本报记者和晓兰一部剧带火一座城。电视剧去有风的地方热播,为春节期间云南大理旅游行业添了一把火。剧中美景美食非遗乡村生活的完美联动,勾起人们的无限向往,大理也成为今年春节来了个连五星级酒店都没有的海岛,北方娃却遇到久违的热闹与逍遥小爱絮语这个春节简直是井喷式出游,大家都有了一颗出去耍的心,不过被挤爆的三亚刷屏后,去海岛就变的纠结起来,哪里还能轻松愉快地看看海,挖挖沙?今天就让皮夹克和小棉袄的妈妈分享一手经历草莓经济让乡村新业态红起来本报记者王春宝董建伟爸爸,你看这草莓红得真好看!在吉林省农安县合隆镇陈家店村的草莓大棚内,一名小朋友挥舞着双手,非常高兴地喊着。家长王先生说,孩子特别喜欢这样的采摘项目,这里到长春敢仿造故宫的景区,8亿炸山,成5A级景区故宫又称紫禁城,是北京的一座宫殿建筑群。它周围环绕着众多华丽的皇家园林和寺庙,包括中山公园祭祀太庙北海公园和景山公园。紫禁城建于1406年至1420年,是从明朝(自永乐皇帝起)到清这个春节没出去旅游,我松了一口气三年来首次畅通无阻的春节,没有了各种条件的限制,三亿多人报复式徜徉在大好河山里。文化和旅游部数据中心测算,今年春节假期,全国国内出游3。08亿人次,已经恢复到了2019年同期的近9九斤重大老鼠身份查清了!他郑重道歉!来源大皖新闻到安庆市动物园后,有游客看到两爬海洋馆门前告示牌上的介绍,便花钱买票想一睹九斤重大老鼠芳容,没想到被告知大老鼠被借走繁殖去了。大皖新闻记者2月7日在探访时了解到,九斤重好甜!建德这个采摘小番茄的好地方,你还不知道吗钱江晚报小时新闻记者何晟通讯员王莹小可爱圣女果,能生吃,能炒菜,还能摆盘装饰,可谓是水果界的百搭星人,怎能不受人喜爱?2023年新年伊始,建德莲花镇戴农富产业园里的小番茄悄悄红透了辽宁第一名刹楞严寺楞严寺,位于营口市区中部的新兴大街,辽南地区第一名刹,是东北现存较为完整的民国时期大型寺院建筑群之一,1979年被辽宁省人民政府列为省级文物保护单位。楞严寺始建于1922年,193早春时节游普洱,这33个A级旅游景区你要来嘎!来源云南日报目前,普洱共有33个A级旅游景区其中4A级旅游景区10个3A级旅游景区21个,2A级旅游景区2个早春时节,生机勃发何不趁着明媚的春光逛一逛这些各具特色的景区呢33款不同红岩上红梅开早春山城上彩妆今春赏花这样打开三种美重庆日报客户端记者郭晓静崔曜首席记者龙帆2月7日,重庆日报记者来到渝中区红岩公园,看到上千株红梅已经悄然绽放,枝条上三朵一簇,五朵一堆,远望去好似粉色的云霞。不少市民来到这里拍照打
2022年10月26日国六929598号汽油,0号柴油最新零售价格开局国际原油下跌,下次成品油价调整可能下跌或搁浅!今天是2022年10月26日星期三,距离下次调价还有11天的时间。油价和我们的生活息息相关,油价的涨跌影响着我们每一个人,下次调价价格走低明显!50英寸电视千元就可购入视频加载中扬子晚报网10月24日讯(见习记者王灿)买一台电视需要多少钱?价格似乎比印象中低一些。记者在电商平台检索注意到,32英寸电视549元43英寸电视799元50英寸电视109好消息!下轮油价或迎来下调,10月26日汽柴油调后最高限价好消息!下轮油价或迎来下调,10月26日汽柴油调后最高限价今天是2022年10月26日,星期三!本轮油价上调后的第2个工作日,油价调整方面再次迎来利好消息,国际油价双双下跌,下轮油金价大跌!10月25日各大金店黄金价格多少钱一克?10月25日,国际金价反弹乏力,美元探底回升限制了金价上行空间,金价跌破1645美元盎司。截至发稿,现货黄金已跌破1640美元盎司。受此影响,国内各大金店金价有明显下跌,目前,金价517亿人民币!中芯国际正式官宣,台积电迎来最强对手华为是位于中国大陆的一家国产型企业,不过却因为其在5G领域方面的领先优势而被美方大力打压,特别是美方对华为在芯片领域的断供近些年来确实给华为的发展造成了巨大的困扰,原本华为在国内手写给第一次来北海的你20条旅行建议预算够的话,最好还是住北海银滩附近,出门就能走到海边,来北海不就是为了看个海么,而且这里离各个景点都近,离码头4分钟,离侨港风情街8分钟,离海洋之窗15分钟。离火车站20分钟。无论如何借一带一路推动人民币国际化?要给外国人用人民币的理由从经济大国过渡到经济强国的一个重要途径就是提升货币的国际地位,最近这几年中国也一直在大力推行人民币国际化,并且做了许多种尝试。比如推动金融开放完善人民币离岸体系建立人民币跨境支付系南非游记(10)黄金之城约翰内斯堡世界著名的国际大都市参观完南非先民纪念馆,我们离开比勒陀尼亚,直接驱车前往约翰内斯堡。我们要到约翰内斯堡的一家中餐馆莲园餐厅吃晚餐。约翰内斯堡(英语Johannesburg),简称约堡(英语Jobur胡锡进港股大幅下挫,是港股的投资者误读了中国内地的很多政策今天市场所有的关注点在港股,港股在昨天星期一一开盘之后的跌幅非常大,而且是在持续两周的下跌以后加速出现下跌!港股,作为香港金融中心的地位之一,在世界上的金融地位非常之高,仅次于纽约多家航司恢复国际航线,10月入境机票搜索环比涨63近日,多家航空公司宣布将恢复或新增国际航线,海外回国的入境机票价格也出现大幅下降。10月25日,同程旅行发布的数据显示,截至10月24日,同程旅行平台入境机票搜索量环比9月上涨63网络超级热门补水保湿抗老美白精华液测评推荐让肌肤光滑柔嫩网络超级热门补水保湿抗老美白精华液测评推荐让肌肤光滑柔嫩!黛珂曲酸美白精华推荐理由质地非常清爽,轻薄,轻盈好吸收,去黄提亮的功能很明显,油皮混油皮干皮都合适用。适合熬夜党和黄皮星人愿时光不负遇见,许岁月不负情深随着季节的变迁,深秋也不动声色地来到我们身边,转眼间,大地山川万山红遍,远处,峰峦叠翠,清黛如画,旷野田间,稻谷油碧,枫叶红,菊花黄。秋天,就像一幅画,空灵透明,清韵不染秋天,就像印度发射火箭,将36枚卫星成功送上轨道用很少的钱,办很大的事最近印度动用国内最重的火箭,将36颗通信卫星成功送上轨道。印度的航天技术虽与美俄中有一定距离,但是在大力发展航天这点上,并不可笑。这反映了印度作为一个大国的抱负,以及战略远见。如果真方便!自助打印机现身,昆明这个小区里有4台近日,云报华府小区的居民发现,小区里多了几台便民自助打印机,居民们说,平时用它来应急打印一些文件照片,很方便快捷。这个自助打印机长啥样呢?一起去看看。眼前这个长得像自动售卖机一样的海尔智慧家庭的精华洗洗衣机新品如何?值得购买吗?传统机洗过程中,存在着衣服越洗越旧,费水费电费时等问题,不仅增加了用户的生活成本,还降低了穿衣体验。海尔洗衣机为您带来解决方案。9月8日起,海尔洗衣机在全国上市了最新产品精华洗洗衣医务人员手中的iPadPro,会是怎样的?也是爱奇艺吗?在疫情下,大家都知道医务人员的付出和全国人民的付出都是有目共睹的。不管是医生护士还是医技,在疫情下几乎不怎么休息。最为突出的就是,城市静态管理下,大家居家隔离,而医护人员都忙得不可一个人去拉萨工作好不好?头条创作挑战赛我在拉萨前后待了5年,无论是旅行还是做生意或是去事业单位,都只有一个感触,如果不是真的对西藏文化艺术特别感兴趣,不是特别能享受孤独,那你千万别来。因为在拉萨工作的年轻怀孕又不耽误工作,你敢辞职就AA妻子答应,随即换了陪嫁房锁01hr女性生育孩子是一件非常痛苦的事,不论是怀孕时还是产后,从生理到心理,都会遭受很严重的伤害。现在医学科普进行得很好,很多年轻人都能了解到孕妇的不容易。有能力的家庭,最好还是让俄货运飞船任务接近发射宇航员在空间站进行大量的人类研究工作下一次为远征68号机组人员提供补给的货运任务准备在10月25日星期二晚间发射到国际空间站(ISS)。与此同时,轨道实验室上的七个宇航员开始了本周的工作,为两位宇航服提供服务,并进行李佳琦已卖空多个链接,罗永浩涨粉百万,双11预售首夜凶猛双11,你准备好了吗?文郑亚文吴鹤鸣易琬玉编辑范婷婷10月24日下午3点,李佳琦在直播间准时现身,他今天的语速比平时略快,平均一分钟上一个预售链接,到8点预售正式开始前,已经上架了有3个省份出台房东税,最高20税率今年的金九银十马上就要结束了,但是在过去两个月,楼市行情并没有回暖的迹象,开发商的各种降价促销的活动并没有取得太好的效果,这些都说明现在房子并不好卖了。当然,这种现象并不仅仅局限于自强奋进,助益乡村振兴之基石群众有期盼,我们有信仰群众有需要,我们有力量。明天更美好不仅仅是因为我们坚信明天更美好,更是因为我们鼓足干劲在创造更加美好的明天。时间是生命的丈量尺,生命是肉体存在的倒计时,历史则