我正在尝试从PHP服务器连接到WebService。当服务器位于AWS EC2 Cloud中时,它将获得正确的响应,但是当我从Linode云中托管的服务器发出请求时,我总是会收到403响应,并带有HTML来请求解决Cloudfare验证码。
存在发出请求的PHP代码:
$request = new SoapClient("https://datacast10.info/WSVEICULOSIMPLES/wsvs2.asmx?WSDL");
$response = $client->__soapCall('consulta', ['consulta' => ['dado' => 'data', 'tipo' => 'type', 'chave' => key]]);
if ($response){
... //Work with the response
}
当我在使用CentOS 6.7,PHP 7的Linode服务器中测试此代码时,它在第一行中失败。
我也尝试手动连接到服务器,发出shell命令。如果我在服务器外壳上尝试这样做:
curl https://datacast10.info/WSVEICULOSIMPLES/wsvs2.asmx?WSDL
我收到一个网页,要求启用cookie并解决验证码(带有CloudFare品牌)。
但是,如果我在具有Ubuntu 18.04和PHP 7的AWS Lightsail实例上尝试相同的代码,则该请求有效,并且curl命令正确返回WSDL。
我已经尝试使用相同的帐户和另一个帐户创建新的Linode,但出现相同的错误。