理解cURL的麻烦

时间:2011-03-22 22:48:27

标签: php curl

我需要传递一个URL,以便从供应商的服务器检索库存可用性。只需在地址栏中输入以下网址即可在浏览器中收到预期的响应:

https://stage-elink2.unitedstationers.com/iLink2/InterlinkDirect.asp?RequestTransmission=OE01XXX            DL2003-02-0616:32:16000100363XXXXXX   001039XXXXXX9        AMFXXXXXX   ACC11038       N&RequestType=3

'X代表我的用户ID&密码信息。空格表示将来使用的字段。

我正在尝试使用cURL使上述字符串工作,但我不确定如何执行此操作。这就是我到目前为止所拥有的。我没有得到任何回应,我不确定如何进行错误检查或逐步查看问题所在。

我的php cURL代码:

$url = "https://stage-elink2.unitedstationers.com/iLink2/InterlinkDirect.asp";

$post_data = "RequestTransmission=OE01XXXX            DL2003-02-  0616:32:16000100363XXXXXX   001039XXXXXX9        AMFXXXXXX   ACC11038       N&RequestType=3";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$result = curl_exec($ch);
curl_close($ch);
echo $result;

感谢任何帮助。谢谢。

2 个答案:

答案 0 :(得分:2)

尝试使用GET:

$url = "https://stage-elink2.unitedstationers.com/iLink2/InterlinkDirect.asp?RequestTransmission=OE01XXX DL2003-02-0616:32:16000100363XXXXXX 001039XXXXXX9 AMFXXXXXX ACC11038 N&RequestType=3";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec($ch);

curl_close($ch);

echo $result;

答案 1 :(得分:1)

经过进一步研究,我发现下面的解决方案有效。

This article on devzone 确实有助于解释如何使用cURL。

This article帮助我收到的SSL错误(错误#60 - cURL错误:SSL证书问题,验证CA证书是否正常)。

$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_USERPWD, "userid:password"); //replace with usedid:password
curl_setopt ($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_TIMEOUT, 3);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $post_string); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 1);  //solved SSL error message
curl_setopt ($ch, CURLOPT_CAINFO, "cacert.pem");  //solved SSL error message
$result = curl_exec($ch);  
curl_close($ch);
echo $result;
相关问题