小编sko*_*ner的帖子

在PHP中进行SOAP调用并设置SSL版本

我已经制作了几个使用外部WSDL的脚本.我遇到了一个我必须整合到我的系统中,我无法工作.我一直在努力,没有任何结果.

该脚本已经无法创建构造函数:

$client = new SoapClient("https://webtjener09.kred.no/TestWebservice/OppdragServiceSoapHttpPort?WSDL");
Run Code Online (Sandbox Code Playgroud)

给出错误:

PHP Fatal error:  SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://webtjener09.kred.no/TestWebservice/OppdragServiceSoapHttpPort?WSDL' : failed to load external entity "https://webtjener09.kred.no/TestWebservice/OppdragServiceSoapHttpPort?WSDL"
Run Code Online (Sandbox Code Playgroud)

我确实安装了openssl并使用PHP,并且记住我已经通过SSL对其他WSDL进行了其他工作的SOAP调用.我发现我无法解决这个问题,因为它已经在构造函数中失败了.

但是: 我尝试使用openssl命令行连接到远程服务器,此命令也失败了:

openssl s_client -connect webtjener09.kred.no:443 -state
Run Code Online (Sandbox Code Playgroud)

但后来我尝试将它强制转换为SSL3并且它完美地运行,如下所示:

openssl s_client -ssl3 -connect webtjener09.kred.no:443 -state
Run Code Online (Sandbox Code Playgroud)

这让我觉得我必须匹配远程服务器的SSL版本.要进行双重检查,我还尝试通过PHP建立cURL连接失败,直到我添加强制SSL版本,如下所示:

curl_setopt($ch, CURLOPT_SSLVERSION, 3);
Run Code Online (Sandbox Code Playgroud)

将CURLOPT_SSLVERSION添加到cURL连接使其正常.然后是我的问题的根源:

如何强制PHP soap构造函数/调用也使用SSL3.在我看来,这必须是解决方案.但是我还没有找到如何将PHP SOAP函数设置为仅使用SSL3.既然命令行-openssl-和PHP cURL都强制使用SSL3,那么我认为我的SOAP函数会发生同样的事情?

输入,好吗?

(使用Ubuntu Linux,PHP 5.3.3)

php ssl curl soap wsdl

13
推荐指数
3
解决办法
2万
查看次数

来自.load()的内容在主页面上无效

我有这些页面:

information.php文件

<div id='content'>Foo Bar</div>
Run Code Online (Sandbox Code Playgroud)

main.php

<div id='main'></div>
<script type="text/javascript">
    $(document).ready(function() {
    $("#main").load("information.php");
    $("#content").click(function() {
        alert("Worked!");
    });
</script>
Run Code Online (Sandbox Code Playgroud)

当我点击<div>with id=content,从中加载时information.php,没有任何反应.Chrome控制台也不会报告任何错误.如果我手动将content-div information.php放入我的main.php页面,一切正常.当我使用jQuery加载时为什么它不起作用?

jQuery主脚本加载在我在网站上完成的所有其他jQuery函数中.当我将另一个页面加载到我的主页面时,加载页面中的ID不起作用,或者某些行不活动.

php jquery

1
推荐指数
1
解决办法
67
查看次数

标签 统计

php ×2

curl ×1

jquery ×1

soap ×1

ssl ×1

wsdl ×1