php 向SOAP Web服务发送cURL所需的帖子时出错

e0uiprwp  于 2022-10-30  发布在  PHP
关注(0)|答案(1)|浏览(128)

我尝试用soap web服务获取信息,但它给了我一个错误Request format is invalid: multipart/form-data; boundary=------------------------b35e9c9f375db7a5.

$id = $_POST['id'];
        $servicepassword = $_POST['servicePassword'];
        $ch = curl_init();
        curl_setopt_array($ch, array(
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_URL => 'https://webgov.com.tr/WebService/Kontrol.asmx/PasoSorguKontrol',
        CURLOPT_POST => 1,
        CURLOPT_POSTFIELDS => [
        'id' => $id,
        'servicepassword' => $servicepassword
        ],
        CURLOPT_FOLLOWLOCATION => 1,
        ));
        $resp = curl_exec($ch);
        curl_close($ch);
        echo $resp;

这个网络服务需要两个变量来工作,学生ID和网络服务密码。并给出xml输出。我不能使代码工作。我是一个新手btw。

js81xvg6

js81xvg61#

解决方案是使用CURLOPT_HTTPHEADER。我甚至用这些代码做了一个函数,它解决了我的问题。

function httpPost($url,$params) {
    $postData = '';
    foreach($params as $k => $v) {
        $postData .= $k . '='.$v.'&';
    }
    rtrim($postData, '&');
    $ch = curl_init();

    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($ch,CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);

    $output=curl_exec($ch);
    curl_close($ch);
    return $output;
}

相关问题