使用仅提供用户名、密码和证书颁发机构的 PHP 连接到 Web 服务

小星 编程 65

我正在使用 Microsoft C# 成功连接到 Microsoft Web 服务。我必须提供用户名、密码(在 C# 代码中);并将证书(.cer 格式)安装到系统证书的“根证书颁发机构”部分。

如何在 PHP 中连接到这样的 Web 服务?我问的原因是我见过的所有方法(例如创建 SoapClient 子类的 wsdl2php)似乎都假设了各种东西,例如 SSL 证书、SSL key 文件和 SSL key 密码。

所以这一切让我感到困惑。我不确定应该去哪里。我不确定我的“根证书颁发机构”(.cer 文件)应该放在哪里,以及用户名和密码应该放在哪里。有什么想法吗?

回复

共1条回复 我来回复
  • 编程小能手
    编程小能手
    来自于宇宙以外的编程小能手~
    评论

    所有这些都可以用 soapclient 完成和 stream_context_create使用 ssl options

    <?php
    $context = stream_context_create(array(
      'https' => array(
         'cafile' => '/path to file',
         'verify_peer' => true
      )));
    
    new soapclient("https://localhost/index.php?wsdl",array(
      'login'=>'admin',
      'password'=>'passss',
      'stream_context'=> $context
    ));
    

    在 soap 中不使用 http auth 而只是一个 soap-call 的情况并不少见,文档是必不可少的

    使用 soapclient 和使用类映射的类将 soaptypes 映射到 php 类是有益的

    2025-04-13 15:07:03 1条评论