将参数发布到其他服务器

时间:2016-01-10 08:36:11

标签: php curl xampp

我想用php curl将参数发送到api。内容类型是xml,但是当我发送此参数时出现错误,如:

Notice: Use of undefined constant CURLOPT_MUTE - assumed 'CURLOPT_MUTE' in C:\xampp\htdocs\router.php on line 20

Warning: curl_setopt() expects parameter 2 to be long, string given in C:\xampp\htdocs\router.php on line 20

我的卷曲代码是:

$xml_data ='<?xml version="1.0" encoding="utf-8"?>'.
'<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'.
    '<soap:Body>'.
    '<getMassBarcode xmlns="http://tempuri.org/">'.
    '<UserName>username</UserName>'.
    '<Password>password</Password>'.
'<PostNodeCode>19387</PostNodeCode>'.
'<CityCode>1</CityCode>'.
    '<TypeCode>11</TypeCode>'.
    '</getMassBarcode>'.
'</soap:Body>'.
'</soap:Envelope>';


$URL = "http://poffice.post.ir/webbarcode/getbarcode.asmx";

        $ch = curl_init($URL);
        curl_setopt($ch, CURLOPT_MUTE, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
        curl_setopt($ch, CURLOPT_POSTFIELDS, "$xml_data");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $output = curl_exec($ch);
        curl_close($ch);

我该如何解决?

注意:我使用post man来测试那个api。在邮差原始选项,我把那个xml内容。它工作得很好

1 个答案:

答案 0 :(得分:0)

您可能正在使用更高版本的curl。刚从代码中删除该行,它应该适合您。

此处从curl setopt页面开始写道:

  

在cURL 7.15.5中删除(您可以使用CURLOPT_RETURNTRANSFER)