我需要传递一个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;
感谢任何帮助。谢谢。
答案 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;