我在使用 cURL 向 SOAP 网络服务发送帖子时遇到错误



我正试图通过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;

这个web服务需要两个变量来工作,学生id和web服务密码。并给出xml输出。我无法使代码正常工作。顺便说一句,我是的新手

解决方案使用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;
}

最新更新