标签: curl

使用 curl 请求重定向到带有锚标记的相对 URL 的 URL

我正在使用 curl 请求使用以下Location:行重定向到不同 URL 的 URL :

Location:/path/to/resource#name
Run Code Online (Sandbox Code Playgroud)

据我了解,根据 HTTP 规范,重定向响应中的那一行是无效的,因此整个 curl 调用失败是可以理解的(在这种情况下,响应代码为 400)。但是,使用 wget 或 Web 浏览器请求 URL 会成功呈现页面(我假设通过在重定向之前填充绝对路径或删除锚标记的启发式方法)。

有什么我可以做的让 curl 做同样的事情(做成功跟随重定向所必需的事情,即使它是“正式”格式错误的)?

编辑:更多细节。最终的响应代码是 400(不是 404 或其他)。当我做一个HEAD请求(有curl -I -L),我得到一个302 Found(有Location: /Error)重定向到500 Server Error。但是,如果我执行常规请求(没有-I选项但有-L选项),我会得到http_code(在 curl 中--write-out)的400. 因此,在这种情况下,HEAD 请求的功能似乎与标准 GET 不同。

http redirect http-headers curl

3
推荐指数
1
解决办法
3万
查看次数

Brew 安装 imagemagick curl 失败

尝试在 OS X Mountain Lion 上通过 brew 安装 imagemagick 时出现以下错误。它似乎是一个 curl 错误 - 因此为什么它在 SF 上而不是在另一个 Stack Exchange 站点上。

brew install imagemagick
==> Installing imagemagick dependency: pkg-config
==> Downloading http://pkgconfig.freedesktop.org/releases/pkg-config-0.27.tar.gz

curl: (7) couldn't connect to host
Error: Download failed: http://pkgconfig.freedesktop.org/releases/pkg-config-0.27.tar.gz
Run Code Online (Sandbox Code Playgroud)

运行brew install imagemagick命令时是否可以选择其他下载位置?

这是一个已知问题吗,我已经搜索过类似的问题,但似乎没有一个是相同的。

bash mac-osx curl imagemagick

3
推荐指数
1
解决办法
1890
查看次数

不能卷曲。curl: (7) 连接失败...连接被拒绝

我无法使用外部 EC2 ip 地址卷曲我已安装的软件之一,但是如果我使用 localhost:5000(或 127.0.0.1:5000)卷曲,它工作正常。任何见解将不胜感激。

我已经安装了这 3 个项目:

  • Elasticsearch,端口 9200 => 我可以使用内部和外部 IP 卷曲
  • Jenkins,端口 8080 => 我可以使用内部和外部 IP 卷曲
  • Python Flask 应用程序,端口 5000 => 我无法使用外部 IP 卷曲。内部 IP 工作正常

使用外部 IP 地址,我可以卷曲前两项,但不能卷曲 python Flask 应用程序。

这是下面的错误。我用“external_ip”替换了真实的ip地址:

$ curl -v external_ip:5000
* Rebuilt URL to: external_ip:5000/
* Hostname was NOT found in DNS cache
*   Trying external_ip...
* connect to external_ip port 5000 failed: Connection refused
* Failed to connect to external_ip port 5000: Connection refused
* Closing connection …
Run Code Online (Sandbox Code Playgroud)

curl

3
推荐指数
1
解决办法
8万
查看次数

用最新的 openssl 和 curl 编译 php

我正在尝试使用最新的 curl 和 openssl (1.0.1l) 编译 php 5.4.36,我已将 openssl 编译到一个单独的文件夹中

我的系统是 CentOS。

当我尝试编译 php 时

./configure  ...etc... --with-curl=/usr/local/curlfolder --with-openssl=/usr/local/opensslfolder
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

checking whether to enable FTP support... yes
checking OpenSSL dir for FTP... /usr/local/opensslfolder
checking for pkg-config... /usr/bin/pkg-config
configure: error: Cannot find OpenSSL's libraries
Run Code Online (Sandbox Code Playgroud)

curl 和 openssl 都编译没有任何问题

php openssl curl

3
推荐指数
1
解决办法
2万
查看次数

将 curl 与 cookie 结合使用

我希望有人可以帮助我解决这个问题。我已经尝试了一段时间了,有各种各样的变化,似乎无法让它发挥作用。

我正在尝试编写一种方法来登录https://login.three.ie/以从 */My_account_balance 检查帐户余额

我已经尝试了各种 wget 命令,但从我读到的内容来看,curl 更有可能完成这项任务。

我一直在尝试我在网上遇到的变体,包括从这里开始的 stackoverflow,但似乎没有任何效果。

这是我尝试的最后一个:

    curl -X POST -c cookies.txt -u "Uern@me:P@ssw0rd" https://login.three.ie/
Run Code Online (Sandbox Code Playgroud)

这确实将 cookie 文件保存在此处:

    $ cat cookies.txt

    Netscape HTTP Cookie File

    #http://curl.haxx.se/docs/http-cookies.html
    This file was generated by libcurl! Edit at your own risk.
    HttpOnly_login.three.ie        FALSE   /       FALSE   1433988274
    laravel_session eyJpdiI6IkFZWmxvZ2oyXC9NNGVIbHVpejZwRWp3PT0iLCJ2YWx1ZSI6Imxkd25UKzBoMldiQlhYZVJnVUpuNUVsblZ1cGJYZWcwM2E1bTtIWHRiQ2pwV0VwemJ4NFlYcDlzTndSeFRNanpwdDhMMTIrS2RGZGdGd0RNZU1yREJ3PT0iLCJtYWMiOiI0NWUwYzc1TY4ODI3ZmY3ODY5NjliODkxODMyODIzMjQwNmNkNjljNTE2NzQxNmQ4MzhhNDljNTdjM2QwZGY1In0%3D
Run Code Online (Sandbox Code Playgroud)

但是当我尝试重新使用 cookie 时,它​​看起来像是重定向或其他东西,因为这就是我得到的:

    $ curl -b cookies.txt  https://my3account.three.ie/My_account_balance
    <html><head><title>302 Moved Temporarily</title></head>
    <body bgcolor="#FFFFFF">
    <p>This document you requested has moved temporarily.</p>
    <p>It's now at <a href="https://sso.three.ie/mylogin//login?auth-        
    required=seamless&amp;service=https&#37;3A&#37;F&#37;                   
    2Fmy3account.three.ie&#37;2FMy_account_balance">https://sso.three.ie/mylogin//login?auth-required=seamless&amp;service=https&#37;3A&#37;2F&#37;2Fmy3account.three.ie&#37;2FMy_account_balance</a>.</p>
Run Code Online (Sandbox Code Playgroud)

我不明白这里发生了什么。有没有人知道出了什么问题,或者更好,如何解决这个问题?

谢谢

scripting bash wget curl shell-scripting

3
推荐指数
1
解决办法
3万
查看次数

yum 不包含软件包:libcurl

我在Redhat 5 找不到以下包

yum -y install libcurl libcurl-devel
Loaded plugins: security
Setting up Install Process
No package libcurl available.
No package libcurl-devel available.
Nothing to do
Run Code Online (Sandbox Code Playgroud)

奇怪的!我在这里缺少什么?

yum rhel5 curl

3
推荐指数
1
解决办法
2万
查看次数

Curl 无法检索 HTTPS 内容

我在 Debian 6 上运行的生产服务器出现问题(apt-get update;apt-get upgrade 成功完成)。

当我调用 HTTPS (StartSSL) 服务器时,我在 Debian 6 上收到一条错误消息:

#> curl --version
curl 7.21.0 (x86_64-pc-linux-gnu) libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.15 libssh2/1.2.6
Protocols: dict file ftp ftps http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz

#> curl https://mydomain.com/api/
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html
Run Code Online (Sandbox Code Playgroud)

但是当我在 Debian 7 …

debian https curl

2
推荐指数
1
解决办法
2339
查看次数

如何对卷曲答案的正文和打印输出进行不同的管道处理?

我想在命令行中打印一些 curl 的输出,比如 http 标头,然后是由 stdin/stdout 程序处理的答案正文。例如:

打印状态码: curl -s -w "%{http_code} \\n" -o "/dev/null" http://myURL.com

然后用json解析工具处理输出: curl -s http://myURL.com | python -mjson.tool

我想用一个命令同时执行这两项操作,并且我觉得这可能要归功于 -o 选项,该选项使 curl 的输出与查询的实际答案之间存在差异。问题是 -o 直接写入文件。有人有黑客吗?

curl

2
推荐指数
1
解决办法
3024
查看次数

在 SSL 通道上嗅探我服务器上的传出流量

我在我的 nginx 服务器 (centOS) 上运行的 php 应用程序上执行 CURL 命令。端点是一个 https 地址,因此传出流量当然是加密的。

我想查看使用tcpDump嗅探传出流量的实际发送到端点的网络数据包。但这样做的结果只是一堆加密数据。

有没有办法在加密之前查看这些数据包?

networking ssl https tcpdump curl

2
推荐指数
1
解决办法
457
查看次数

如何为 TLSv1.2 支持构建 curl?

我正在尝试在我的 RHEL 6.x 机器上构建 curl,因为现有版本不支持 TLSv1.2。但是,无论我选择哪个选项,它总是以以下错误结束:

配置:警告:禁用 SSL,您将无法使用 HTTPS、FTPS、NTLM 等。
配置:警告:使用--with-ssl、--with-gnutls、--with-polarssl、--with-cyassl、--with-nss、--with-axtls ....

我尝试过的选项是

./configure --with-ssl
./configure --with-ssl=/usr/bin/openssl
./configure --with-nss
./configure --with-gnutls

我还尝试下载和构建 nss 和 openssl,但这也无济于事。

redhat curl rhel6

2
推荐指数
1
解决办法
2万
查看次数