相关疑难解决方法(0)

使用PHP连接到受WS-Security保护的Web服务

我正在尝试连接到受密码保护且网址为https的Web服务.在脚本发出请求之前,我无法弄清楚如何进行身份验证.它似乎在我定义服务时立即发出请求.例如,如果我投入:

$client = new SoapClient("https://example.com/WSDL/nameofservice",
       array('trace' => 1,)
);
Run Code Online (Sandbox Code Playgroud)

然后在浏览器上访问该站点,我得到:

Fatal error: Uncaught SoapFault exception: 
[WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from
'https://example.com/WSDL/nameofservice' in /path/to/my/script/myscript.php:2 
Stack trace: #0 /path/to/my/script/myscript.php(2): 
SoapClient->SoapClient('https://example...', Array) #1 {main} thrown in 
/path/to/my/script/myscript.php on line 2
Run Code Online (Sandbox Code Playgroud)

如果我尝试将服务定义为Soap服务器,例如:

$server= new SoapServer("https://example.com/WSDL/nameofservice");
Run Code Online (Sandbox Code Playgroud)

我明白了:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>WSDL</faultcode>
<faultstring>
SOAP-ERROR: Parsing WSDL: 
Couldn't load from 'https://example.com/WSDL/nameofservice'
</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Run Code Online (Sandbox Code Playgroud)

我还没有尝试发送原始请求信封,看看服务器返回什么,但这可能是一种解决方法.但是我希望有人可以告诉我如何使用php内置类来设置它.我尝试将"userName"和"password"添加到数组中,但这并不好.问题是我甚至无法判断我是否到达了远程站点,更不用说它是否拒绝了请求.

php ws-security soap web-services

31
推荐指数
4
解决办法
7万
查看次数

如何在PHP中用HTML显示XML?

我有一个XML字符串:

$string = 
"
<shoes>
    <shoe>
       <shouename>Shoue</shouename>
    </shoe>
</shoes>
";
Run Code Online (Sandbox Code Playgroud)

并希望在我的网站上显示如下:

This is XML string content:
<shoes>
    <shoe>
       <shouename>Shoue</shouename>
    </shoe>
</shoes>
Run Code Online (Sandbox Code Playgroud)

所以我想这样做:

  • 在网站上,而不是在文本框中
  • 没有外部库,框架等
  • 用适当的新行格式化
  • 用标签格式化
  • 没有颜色等,只有文字

那么如何以简单明了的方式做到这一点呢?

html php xml

31
推荐指数
3
解决办法
7万
查看次数

标签 统计

php ×2

html ×1

soap ×1

web-services ×1

ws-security ×1

xml ×1