标签: curl

如何使用PHP中的cURL连接Tor隐藏服务?

我正在尝试使用以下PHP代码连接到Tor隐藏服务:

$url = 'http://jhiwjjlqpyawmpjx.onion/'
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_PROXY, "http://127.0.0.1:9050/");
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
$output = curl_exec($ch);
$curl_error = curl_error($ch);
curl_close($ch);

print_r($output);
print_r($curl_error);
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我收到以下错误:

无法解析主机名

但是,当我从Ubuntu中的命令行运行以下命令时:

curl -v --socks5-hostname localhost:9050 http://jhiwjjlqpyawmpjx.onion
Run Code Online (Sandbox Code Playgroud)

我得到了预期的回复

PHP cURL文档说明了这一点:

--socks5-hostname
Use  the  specified  SOCKS5 proxy (and let the proxy resolve the host name).
Run Code Online (Sandbox Code Playgroud)

我相信它从命令行工作的原因是因为Tor(代理)正在解析它识别的.onion主机名.在运行上面的PHP代码时,我的猜测是cURL或PHP正在尝试解析.onion主机名并且无法识别它.我已经搜索了一种告诉cURL/PHP让代理解析主机名的方法,但我找不到办法.

有一个非常类似的Stack Overflow问题,使用socks5代理的cURL请求在使用PHP时失败,但它通过命令行工作.

php proxy curl tor

350
推荐指数
4
解决办法
23万
查看次数

在Linux中使用cURL进行HTTP POST和GET

我在Windows上用ASP.NET编写了一个服务器应用程序,它提供了一个Web服务.

如何使用cURL在Linux中调用Web服务?

linux curl web-services

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

调用未定义的函数curl_init().?

当我要实现Authorize.net支付网关时.但是,我收到了这个错误:

调用未定义的函数curl_init()

请让我知道它有什么问题.

php curl

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

PHP cURL可以在单个请求中检索响应标头和正文吗?

有没有办法使用PHP获取cURL请求的标题和正文?我发现这个选项:

curl_setopt($ch, CURLOPT_HEADER, true);
Run Code Online (Sandbox Code Playgroud)

将返回身体加上标题,但后来我需要解析它以获取身体.有没有办法以更有用(和更安全)的方式获得两者?

请注意,对于"单个请求",我的意思是避免在GET/POST之前发出HEAD请求.

php curl http

302
推荐指数
6
解决办法
39万
查看次数

如何为curl命令urlencode数据?

我正在尝试编写一个用于测试的bash脚本,它接受一个参数并通过curl将其发送到网站.我需要对值进行url编码,以确保正确处理特殊字符.做这个的最好方式是什么?

这是我到目前为止的基本脚本:

#!/bin/bash
host=${1:?'bad host'}
value=$2
shift
shift
curl -v -d "param=${value}" http://${host}/somepath $@
Run Code Online (Sandbox Code Playgroud)

bash shell scripting curl urlencode

300
推荐指数
26
解决办法
30万
查看次数

传递带括号的URL以进行卷曲

如果我尝试将URL传递给包含括号的curl,则会失败并显示错误:

$ curl 'http://www.google.com/?TEST[]=1'
curl: (3) [globbing] illegal character in range specification at pos 29
Run Code Online (Sandbox Code Playgroud)

但是,如果我逃避两个括号,它似乎工作:

$ curl 'http://www.google.com/?TEST\[\]=1'
Run Code Online (Sandbox Code Playgroud)

有趣的是,我使用反斜杠逃脱只有第一托架它与错误代码20497默默地失败:

$ curl 'http://www.google.com/?TEST\[]=1'
$ echo $!
20497
Run Code Online (Sandbox Code Playgroud)

我的问题是如何解决一般情况?是否存在会自动转义URL的参数,或者在传递给curl之前需要转义的字符的描述?

url curl

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

如何使用cURL发送Cookies?

我读到发送带有卷曲作品的饼干,但不适合我

我有一个REST端点作为

class LoginResource(restful.Resource):
    def get(self):
        print(session)
        if 'USER_TOKEN' in session:
            return 'OK'
        return 'not authorized', 401
Run Code Online (Sandbox Code Playgroud)

当我尝试访问时

curl -v -b ~/Downloads/cookies.txt -c ~/Downloads/cookies.txt http://127.0.0.1:5000/
* About to connect() to 127.0.0.1 port 5000 (#0)
*   Trying 127.0.0.1...
* connected
* Connected to 127.0.0.1 (127.0.0.1) port 5000 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.27.0
> Host: 127.0.0.1:5000
> Accept: */*
>
* HTTP 1.0, assume close after body
< HTTP/1.0 401 UNAUTHORIZED
< Content-Type: …
Run Code Online (Sandbox Code Playgroud)

rest session curl session-cookies flask

272
推荐指数
6
解决办法
38万
查看次数

如何使用cURL调试CORS请求?

如何使用cURL调试CORS请求?到目前为止,我找不到任何"模拟"预检请求的方法.

curl cors

268
推荐指数
5
解决办法
16万
查看次数

HTTP基本身份验证 - 预期的浏览器体验是什么?

当服务器允许通过基本HTTP身份验证进行访问时,浏览器的预期体验是什么?

我通常只使用curl执行此操作:

curl -u myusername:mypassword http://somesite.com
Run Code Online (Sandbox Code Playgroud)

它工作得很好.但是,现在我无法访问curl(长篇故事),如果可能的话,我想从Web浏览器中进行操作.

我认为Basic Auth应该工作的方式是 - 我输入我想要的网址,服务器然后决定我没有被授权,返回响应代码401,我输入我的用户名和密码到提示符.如果它是正确的,页面加载!

但是,在somesite.com上,我根本没有获得授权提示,只是一个页面上写着我没有被授权.有些网站没有正确实现Basic Auth工作流程,还是我还需要做其他事情?

curl basic-authentication

251
推荐指数
6
解决办法
46万
查看次数

从谷歌驱动器wget/curl大文件

我正在尝试从脚本中的谷歌驱动器下载文件,我在这方面遇到了一些麻烦.我正在尝试下载的文件在这里.

我在网上看了很多,我终于设法让其中一个下载了.我得到了文件的UID和较小的(1.6MB)下载,但较大的文件(3.7GB)总是重定向到一个页面,询问我是否要在没有病毒扫描的情况下继续下载.有人可以帮助我通过那个屏幕吗?

这是我如何使第一个文件工作 -

curl -L "https://docs.google.com/uc?export=download&id=0Bz-w5tutuZIYeDU0VDRFWG9IVUE" > phlat-1.0.tar.gz
Run Code Online (Sandbox Code Playgroud)

当我在另一个文件上运行相同的时候,

curl -L "https://docs.google.com/uc?export=download&id=0Bz-w5tutuZIYY3h5YlMzTjhnbGM" > index4phlat.tar.gz
Run Code Online (Sandbox Code Playgroud)

我得到以下输出 - 在此输入图像描述

我注意到链接中的倒数第三行,&confirm=JwkK其中有一个随机的4个字符串,但建议有一种方法可以向我的URL添加确认.我访问过的其中一个链接建议&confirm=no_antivirus但是这不起作用.

我希望有人可以帮忙解决这个问题!

提前致谢.

curl wget google-docs google-drive-api

247
推荐指数
22
解决办法
25万
查看次数