📅  最后修改于: 2020-12-02 06:26:09             🧑  作者: Mango
cURL实用程序是与CouchDB通信的一种方式。
它是使用支持的协议之一(HTTP,HTTPS,FTP,FTPS,TFTP,DICT,TELNET,LDAP或FILE)从服务器传输数据或向服务器传输数据的工具。该命令设计为无需用户干预即可工作。 cURL提供了大量有用的技巧,例如代理支持,用户身份验证,ftp上传,HTTP发布,SSL(https :)连接,cookie,文件传输恢复等。
cURL实用程序在UNIX,Linux,Mac OS X和Windows等操作系统中可用。它是一个命令行实用程序,用户可以使用它直接从命令行访问HTTP协议。本章教您如何使用cURL实用程序。
您可以使用cURL实用程序访问任何网站,只需键入cURL,然后输入网址,如下所示-
curl www.tutorialspoint.com/
默认情况下,cURL实用程序返回所请求页面的源代码。它在终端窗口上显示此代码。
cURL实用程序提供了各种可用的选项,您可以在cURL实用程序帮助中看到它们。
以下代码显示了cURL帮助的某些部分。
$ curl --help
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 CA certificate to verify peer against (SSL)
-d/--data HTTP POST data (H)
--data-ascii HTTP POST ASCII data (H)
--data-binary HTTP POST binary data (H)
--data-urlencode HTTP POST data
urlencoded (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)
-F/--form Specify HTTP multipart POST data (H)
--form-string Specify HTTP multipart POST data (H)
--ftp-account Account data to send when requested by server
(F)
--ftp-alternative-to-user String to replace "USER [name]" (F)
--ftp-create-dirs Create the remote dirs if not present (F)
--ftp-method [multi cwd/no cwd/single cwd] Control CWD usage (F)
--ftp-pasv Use PASV/EPSV instead of PORT (F)
-G/--get Send the -d data with a HTTP GET (H)
-H/--header Custom header to pass to server (H)
-I/--head Show document info only
-h/--help This help text
--hostpubmd5 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)
-M/--manual Display the full manual
-o/--output Write output to instead of stdout
--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)
-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 Specify request command to use
--retry Retry request times if transient problems
occur
--retry-delay When retrying, wait this many seconds
between each
--retry-max-time Retry only within this period
-T/--upload-file Transfer to remote site
--url Set URL to work with
-B/--use-ascii Use ASCII/text transfer
与CouchDB通信时,广泛使用了cURL实用程序的某些选项。以下是cURL实用程序的一些重要选项的简要说明,包括CouchDB使用的选项。
(HTTP)指定与HTTP服务器通信时使用的自定义请求方法。使用指定的请求,而不是使用其他方法(默认为GET)。阅读HTTP 1.1规范以获取详细信息和说明。
(FTP)指定使用ftp进行文件列表时要使用的自定义FTP命令而不是LIST。
(HTTP)获取网页时使用额外的标头。请注意,如果添加的自定义标头的名称与cURL使用的内部标头的名称相同,则将使用外部设置的标头,而不使用内部标头。这使您可以比cURL进行更棘手的工作。如果不完全知道自己在做什么,则不应替换内部设置的标题。将内部标头替换为冒号右侧没有内容的标头将防止该标头出现。
cURL确保您添加/替换的每个标头都带有正确的行尾标记。您既不应将其添加为标题内容的一部分,也不应添加换行符或回车符来乱序处理。
另请参见-A /-user-agent和-e /-referer选项。
可以多次使用此选项来添加/替换/删除多个标题。
使用cURL的此标志,您可以将数据和HTTP POST请求一起发送到服务器,就像用户在表单中填写并提交一样。
例
假设有一个网站,您想使用cURL实用程序的–d标志登录到该网站或将一些数据发送到该网站,如下所示。
curl -X PUT http://mywebsite.com/login.html -d userid=001 -d password=tutorialspoint
它发送一个看起来像“ userid = 001&password = tutorialspoint”的帖子块。同样,您也可以使用-d标志发送文档(JSON)。
使用此标志,cURL将请求的输出写入文件。
例
以下示例显示了cURL实用程序的-o标志的使用。
$ curl -o example.html www.tutorialspoint.com/index.htm
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 81193 0 81193 0 0 48168 0 --:--:-- 0:00:01 --:--:--
58077
这将获取tutorialspoint.com主页的源代码,创建一个名为example.com的文件,并将输出保存在名为example.html的文件中。
以下是example.html的快照。
该标志类似于–o ,唯一的不同是该标志,创建了一个与所请求的URL名称相同的新文件,并将所请求的URL的源代码复制到该文件。
例
以下示例显示了cURL实用程序的-O标志的使用。
$ curl -O www.tutorialspoint.com/index.htm
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left
Speed
100 81285 0 81285 0 0 49794 0 --:--:-- 0:00:01 --:--:--
60077
它会创建一个名为index.htm的新文件,并在其中保存tutorialspoint.com的索引页的源代码。
您可以通过向安装的CouchDB实例发送GET请求来访问CouchDB的主页。首先,请确保已在Linux环境中安装了CouchDB,并且该CouchDB已成功运行,然后使用以下语法将get请求发送到CouchDB实例。
curl http://127.0.0.1:5984/
这为您提供了一个JSON文档,如下所示,其中CouchDB指定了详细信息,例如版本号,供应商名称和软件版本。
$ curl http://127.0.0.1:5984/
{
"couchdb" : "Welcome",
"uuid" : "8f0d59acd0e179f5e9f0075fa1f5e804",
"version" : "1.6.1",
"vendor" : {
"name":"The Apache Software Foundation",
"version":"1.6.1"
}
}
您可以通过发送get请求以及字符串“ _all_dbs 字符串 ”来获取创建的所有数据库的列表。以下是获取CouchDB中所有数据库列表的语法。
curl -X GET http://127.0.0.1:5984/_all_dbs
它为您提供了CouchDB中所有数据库的列表,如下所示。
$ curl -X GET http://127.0.0.1:5984/_all_dbs
[ "_replicator" , "_users" ]
您可以使用cURL和带有以下语法的PUT标头在CouchDB中创建数据库-
$ curl -X PUT http://127.0.0.1:5984/database_name
例如,使用上面给定的语法创建一个名称为my_database的数据库,如下所示。
$ curl -X PUT http://127.0.0.1:5984/my_database
{"ok":true}
通过列出所有数据库,验证是否创建了数据库,如下所示。在这里,您可以在列表中观察新创建的数据库的名称“ my_database”
$ curl -X GET http://127.0.0.1:5984/_all_dbs
[ "_replicator " , "_users" , "my_database" ]
您可以使用get请求以及数据库名称来获取有关数据库的信息。以下是获取数据库信息的语法。
作为示例,让我们获取名为my_database的数据库的信息,如下所示。在这里,您可以获取有关数据库的信息作为响应。
$ curl -X GET http://127.0.0.1:5984/my_database
{
"db_name" : "my_database",
"doc_count" : 0,
"doc_del_count" : 0,
"update_seq" : 0,
"purge_seq" : 0,
"compact_running" : false,
"disk_size" : 79,
"data_size" : 0,
"instance_start_time" : "1423628520835029",
"disk_format_version" : 6,
"committed_update_seq" : 0
}
Futon是CouchDB的内置,基于Web的管理界面。它提供了一个简单的图形界面,您可以使用它与CouchDB进行交互。这是一个简单的界面,它提供对所有CouchDB功能的完全访问权限。以下是这些功能的列表-
数据库-
文件-
确保CouchDB正在运行,然后在浏览器中打开以下网址-
http://127.0.0.1:5984/_utils/
如果打开此URL,它将显示Futon主页,如下所示-
在此页面的左侧,您可以查看CouchDB当前所有数据库的列表。在此图中,我们有一个名为my_database的数据库,以及系统定义的数据库_replicator和_user 。
在右侧,您可以看到以下内容-
工具-在本节中,你可以找到组态设定的CouchDB,复制器进行复制和状态验证的CouchDB的地位和对CouchDB的做一次修改。
文档-本节包含有关CouchDB最新版本的完整文档。
诊断-在此您可以验证CouchDB的安装。
最近的数据库-在此之下,您可以找到最近添加的数据库的名称。