我想设置curl使用代理服务器.网址由html表单提供,这不是问题.没有代理,它工作正常.我在这个和其他网站上找到了代码,但它们不起作用.任何帮助找到正确的解决方案将非常感激.我觉得波纹管很接近,但我错过了一些东西.谢谢.
我在这里改编的波纹管代码http://www.webmasterworld.com/forum88/10572.htm,但它返回了第12行丢失的T_VARIABLE的错误消息.
<?
$url = '$_POST[1]';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0);
curl_setopt($ch, CURLOPT_PROXY, '66.96.200.39:80');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST,'GET');
curl_setopt ($ch, CURLOPT_HEADER, 1)
curl_exec ($ch);
$curl_info = curl_getinfo($ch);
curl_close($ch);
echo '<br />';
print_r($curl_info);
?>
Run Code Online (Sandbox Code Playgroud)
波纹管从卷曲到代理返回没有内容
<?
$proxy = "66.96.200.39:80";
$proxy = explode(':', $proxy);
$url = "$_POST[1]";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXY, $proxy[0]);
curl_setopt($ch, CURLOPT_PROXYPORT, $proxy[1]);
curl_setopt($ch, CURLOPT_HEADER, 1);
$exec = curl_exec($ch);
echo curl_error($ch);
print_r(curl_getinfo($ch));
echo …Run Code Online (Sandbox Code Playgroud) 我正在尝试在Ubuntu 11.04上安装Rails环境.当我启动命令时rvm install 1.9.2 --with-openssl-dir=/usr/local,收到以下错误:
curl : (1) Protocol https not supported or disabled in libcurl
Run Code Online (Sandbox Code Playgroud)
怎么解决这个问题?
这是我的代码,
$url = 'url_to_post';
$data = array(
"first_name" => "First name",
"last_name" => "last name",
"email"=>"email@gmail.com",
"addresses" => array (
"address1" => "some address",
"city" => "city",
"country" => "CA",
"first_name" => "Mother",
"last_name" => "Lastnameson",
"phone" => "555-1212",
"province" => "ON",
"zip" => "123 ABC"
)
);
$data_string = json_encode($data);
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, array("customer"=>$data_string));
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER,
array(
'Content-Type:application/json',
'Content-Length: ' . strlen($data_string)
)
);
$result = curl_exec($ch);
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)
在其他页面,我正在检索发布数据.
print_r ($_POST);
Run Code Online (Sandbox Code Playgroud)
输出是
HTTP/1.1 …Run Code Online (Sandbox Code Playgroud) 它作为一个工具正常工作:
curl "someURL"
curl -o - "someURL"
Run Code Online (Sandbox Code Playgroud)
但它不适用于管道:
curl "someURL" | tr -d '\n'
curl -o - "someURL" | tr -d '\n'
Run Code Online (Sandbox Code Playgroud)
它返回:
(23) Failed writing body
Run Code Online (Sandbox Code Playgroud)
卷曲输出管道有什么问题?如何缓冲整个curl输出然后处理它?
如何使用cURL在PHP中执行RAW POST?
没有任何编码的原始帖子,我的数据存储在一个字符串中.数据应格式如下:
... usual HTTP header ...
Content-Length: 1039
Content-Type: text/plain
89c5fdataasdhf kajshfd akjshfksa hfdkjsa falkjshfsa
ajshd fkjsahfd lkjsahflksahfdlkashfhsadkjfsalhfd
ajshdfhsafiahfiuwhflsf this is just data from a string
more data kjahfdhsakjfhsalkjfdhalksfd
Run Code Online (Sandbox Code Playgroud)
一种选择是手动编写正在发送的整个HTTP标头,但这似乎不太理想.
无论如何,我可以只将选项传递给curl_setopt(),说使用POST,使用text/plain,并从一个$variable?发送原始数据?
我有一个在PHP中使用的cURL调用:
curl -i -H'接受:application/xml'-u login:key" https://app.streamsend.com/emails "
我需要一种在Python中做同样事情的方法.在Python中是否有替代cURL的方法.我知道urllib,但我是一个Python noob,不知道如何使用它.
Curl提供了一系列不同的http方法调用,它们以X为前缀,但也提供了相同的方法.我已经试过了两个,我似乎无法找出差异.有人可以快速向我解释这两种操作有何不同?
我试图通过cURL从命令提示符向远程REST API发送"GET"请求,如下所示:
curl -X GET -H "Content-type: application/json" -H "Accept: application/json" "http://server:5050/a/c/getName/{"param0":"pradeep"}"
Run Code Online (Sandbox Code Playgroud)
但它没有返回任何输出.我试图直接从浏览器ping URL,我能够成功获得响应,我不明白该命令有什么问题.
基本上我想为远程REST服务设置一个"GET"请求,它通过curl给我一个json数据作为响应.任何人都可以指导我,我在做什么错误?我尝试了各种帖子,但他们所有人都在谈论不是关于GET的POST请求.
我是Curl和Cacerts世界的新手,在连接服务器时遇到问题.基本上,我需要测试从一台机器到另一台机器的https连接.我有一个我需要从机器A(Linux机器)连接的URL我在命令提示符下尝试了这个
cmd> curl https://[my domain or IP address]
Run Code Online (Sandbox Code Playgroud)
并得到以下:
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Run Code Online (Sandbox Code Playgroud)
通过互联网上的一些文章我做了这个:
openssl s_client -connect <domain name or Ip address>:443
Run Code Online (Sandbox Code Playgroud)
并获得一些响应,包括服务器证书(内部-----BEGIN CERTIFICATE----- and -----END CERTIFICATE-----).
接下来我该怎么办?我想,我只需要复制粘贴文本
BEGIN CERTIFICATE & END CERTIFICATE并将其保存在文件中.但是,它应该是什么类型的文件?.pem,.crt?那之后该怎么办?
我试过这个 - 复制里面的文本BEGIN CERTIFICATE & END CERTIFICATE并将其保存在一个.crt文件中 - 将其命名为my-ca.crt(也通过将其命名为my-ca.pem文件来尝试同样的事情),然后执行此操作:
cmd>curl --cacert my-ca.crt https://[my domain or IP address]
Run Code Online (Sandbox Code Playgroud)
但得到了同样的错误.
我正在尝试使用os x终端的curl命令在我的rails应用程序上创建用户.无论我如何格式化数据,应用程序都会返回不通过验证的响应.
curl http://localhost:3000/api/1/users.json -i -X POST -d {"user":{"first_name":"firstname","last_name":"lastname","email":"email@email.com","password":"app123","password_confirmation":"app123"}}"
Run Code Online (Sandbox Code Playgroud)
我尝试了各种变化.我尝试使用[]括号,我尝试过user = {data ..},似乎没有任何效果.有任何想法吗?