【问题标题】:Doing a curl request执行 curl 请求
【发布时间】:2015-03-23 07:58:06
【问题描述】:

我正在尝试在网站上执行 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"

【问题讨论】:

标签: php curl


【解决方案1】:

您似乎正确地传递了--data 参数。但是您忘记设置Content-TypeAcceptRefererConnection 标头。您可以通过设置X-Requested-With 标头(在$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);

【讨论】:

    猜你喜欢
    • 2021-08-02
    • 2014-10-20
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 2012-11-26
    • 2011-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多