服务器使用curl POST请求
问题描述:
没有响应我使用此代码来获得使用php curl
服务器使用curl POST请求
守则post
请求URL的内容看起来如下:
// Get cURL resource
$curl = curl_init();
// Set some options - we are passing in a useragent too here
curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => 'http://www1.ptt.gov.tr/tr/interaktif/sonuc-yd.php',
CURLOPT_USERAGENT => 'Codular Sample cURL Request',
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => array(
'barcode' => 'CP021325078TR',
'security_code' => $capcha2
)
));
// Send the request & save response to $resp
$resp = curl_exec($curl);
// Close request to clear up some resources
curl_close($curl);
echo "<pre>";
var_dump($resp);
echo "</pre>";
结果似乎并没有返回什么都没有。
这段代码有什么问题?
答
试试这个:
$url = 'http://www1.ptt.gov.tr/tr/interaktif/sonuc-yd.php';
$postvals = array(
'barcode' => 'CP021325078TR',
'security_code' => $capcha2
);
$resp = Request($url,$postvals);
echo "<pre>"; var_dump($resp); exit;
...
function Request($url,$params=array()){
$ch = curl_init();
$curlOpts = array(
CURLOPT_URL => $url,
CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0',
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true
);
if(!empty($params)){
$curlOpts[CURLOPT_POST] = true;
$curlOpts[CURLOPT_POSTFIELDS] = $params;
}
curl_setopt_array($ch,$curlOpts);
$answer = curl_exec($ch);
if (curl_error($ch)) {
echo curl_error($ch); exit;
}
curl_close($ch);
return $answer;
}
编辑:
我试用了一下得到了:
Could not resolve host: www1.ptt.gov.tr
所以确保你打电话正确的终点。
答
其实你需要设置这个变量
$captcha2
在这里使用它 -
'security_code' => $capcha2
从哪里u检验了吗? 也在这里你有链接,你可以手动提出请求,看看发生了什么后台: http://www1.ptt.gov.tr/tr/interaktif/kayitliposta-yd_yeniweb.php – 2014-10-26 14:37:39
该页面不是加载在我的浏览器中。 – 2014-10-26 14:40:01
进行测试:http://3v4l.org – 2014-10-26 14:40:28