执行 curl 请求
Doing a curl request
我正在尝试在网站上执行 curl 请求,但似乎无法正常工作。
这是我的
<?php
$mynumber = $_GET["mynumber"];
echo $mynumber;
$url = 'thewebsite/c/number='.$mynumber; // like this?
$curl_header = array('X-Requested-With: XMLHttpRequest');
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $curl_header);
curl_setopt($ch, CURLOPT_POSTFIELDS, "number=$mynumber"); //??? --data "number=12345678" ?
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE);
curl_setopt($ch, CURLOPT_VERBOSE, true);
$result = curl_exec($ch);
echo $result;
curl_close($ch)
?>
这是 curl 请求:
"Content-Type: application/x-www-form-urlencoded; charset=UTF-8" -H "Accept: application/json, text/javascript, */*; q=0.01" -H "Referer: thewebsite" -H "X-Requested-With: XMLHttpRequest" -H "Connection: keep-alive" --data "number=12345678" --compressed POST /thewebsite/c HTTP/1.1
我不确定如何传递 "--data "number=12345678"
您似乎正确传递了 --data
参数。但是您忘记设置 Content-Type
、Accept
、Referer
和 Connection
header。您可以按照设置 X-Requested-With
header(在 $curl_header
中)的方式添加它们:
<?php
$cookie = '';
$mynumber = $_GET['mynumber'];
$ch = curl_init('http://example.com/c/');
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'X-Requested-With: XMLHttpRequest',
'Content-Type: application/x-www-form-urlencoded; charset=UTF-8',
'Accept: application/json, text/javascript, */*; q=0.01',
'Referer: http://example.com/c/',
'Connection: keep-alive'
));
curl_setopt($ch, CURLOPT_POSTFIELDS, "number=$mynumber");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE);
curl_setopt($ch, CURLOPT_VERBOSE, true);
$result = curl_exec($ch);
var_dump($result);
我正在尝试在网站上执行 curl 请求,但似乎无法正常工作。
这是我的
<?php
$mynumber = $_GET["mynumber"];
echo $mynumber;
$url = 'thewebsite/c/number='.$mynumber; // like this?
$curl_header = array('X-Requested-With: XMLHttpRequest');
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $curl_header);
curl_setopt($ch, CURLOPT_POSTFIELDS, "number=$mynumber"); //??? --data "number=12345678" ?
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE);
curl_setopt($ch, CURLOPT_VERBOSE, true);
$result = curl_exec($ch);
echo $result;
curl_close($ch)
?>
这是 curl 请求:
"Content-Type: application/x-www-form-urlencoded; charset=UTF-8" -H "Accept: application/json, text/javascript, */*; q=0.01" -H "Referer: thewebsite" -H "X-Requested-With: XMLHttpRequest" -H "Connection: keep-alive" --data "number=12345678" --compressed POST /thewebsite/c HTTP/1.1
我不确定如何传递 "--data "number=12345678"
您似乎正确传递了 --data
参数。但是您忘记设置 Content-Type
、Accept
、Referer
和 Connection
header。您可以按照设置 X-Requested-With
header(在 $curl_header
中)的方式添加它们:
<?php
$cookie = '';
$mynumber = $_GET['mynumber'];
$ch = curl_init('http://example.com/c/');
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'X-Requested-With: XMLHttpRequest',
'Content-Type: application/x-www-form-urlencoded; charset=UTF-8',
'Accept: application/json, text/javascript, */*; q=0.01',
'Referer: http://example.com/c/',
'Connection: keep-alive'
));
curl_setopt($ch, CURLOPT_POSTFIELDS, "number=$mynumber");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE);
curl_setopt($ch, CURLOPT_VERBOSE, true);
$result = curl_exec($ch);
var_dump($result);