我正在尝试通过cUrl
我的 Apache localhost 上的 PHP 表单将一些 XMl 发送到在我的 .NET localhost 上运行的.ashx
侦听器类。ProcessRequest()
我在不同的端口上运行 Apache 和 .NET,它们工作正常,问题是cURL
返回 500 内部服务器错误。
我cURL
的 Requestb.in 工作正常并且没有问题,但是在发送到我的本地 .NET 开发服务器时,我得到了错误No parameterless constructor defined for this object
。我不知道为什么会这样,起初我认为可能是授权问题,但为页面设置了正确的授权无济于事(代码如下)。
<location path="AccountHandler.ashx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
这是我的cURL
代码:
function DoPostRequest($url, $xml){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: BASIC ' . base64_encode("test:test"),
'Content-type: application/xml',
'Content-length: ' . strlen($xml),
'User-Agent: Googlebot/2.1',
));
$output = curl_exec($ch);
$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return $output;
}
在本地主机上接收 POST 是否有某种本地 .NET 预防措施?这对我来说似乎很奇怪,但回想起来,我记得过去我无法在本地环境中接收来自第三方 API 的推送通知。
这是问题还是我忽略了一些配置问题?