PHP SoapClient 与 BasicAuth

2024-02-14

我有一个 PHP 脚本尝试连接到 WSDL。 我需要允许自签名并提供基本的身份验证详细信息。 使用 SOAP UI,当我连接到 WSDL 时,系统会提示我输入用户名/密码。 我得到了这个工作。

我还发现每个请求还需要基本身份验证(因此在请求屏幕上,我必须选择“身份验证”,然后选择“基本”,输入与提示中使用的相同的凭据)。

如何在 PHP 中进行此身份验证 正如我所说,我可以连接,不是问题,如果我尝试发出请求,我似乎会终止服务或超时

<?php
$context = stream_context_create(array(
    'ssl' => array(
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true
    )
 ));

$data = array(
    'columnA' => 'dataA',
    'columnB' => 'dataB',
    'columnC' => 'dataC');

$url = 'https://111.111.111.111:1234/dir/file';
$login = 'username';
$pwd = 'password';


$client = new soapClient(null, array(
     'location' => $url,
     'uri' => '',
     'login' => $login,
     'password' => $pwd,
     'stream_context' => $context
));
echo "\n\r---connected---\n\r";
$result = $client ->requestName($data);

print_r($result);
?>

我的输出是 - -连接的 - -

然后好像就挂了。 我尝试将它包裹在 try catch 周围,得到了相同的结果。

有什么建议么??


来自Manual https://www.php.net/manual/en/soapclient.soapclient.phpSoapclient 支持 http 基本身份验证。

对于 HTTP 身份验证,可以使用登录名和密码选项 提供凭证。用于通过代理建立 HTTP 连接 服务器,选项 proxy_host、proxy_port、proxy_login 和 proxy_password 也可用。对于 HTTPS 客户端证书 身份验证使用 local_cert 和密码选项。一个 身份验证可以在身份验证选项中提供。这 身份验证方法可以是 SOAP_AUTHENTICATION_BASIC (默认)或 SOAP_AUTHENTICATION_DIGEST。

$wsdl = "http://example/services/Service?wsdl";
$option = array(
    "trace"=>1,
    "login"=>"admin",
    "password"=>"admin",
);
$client = new SoapClient($wsdl,$option);

但是当我启动soapclient时,它会抛出这个错误

例外:未经授权

我也尝试过将身份验证放入网址中,例如

$wsdl = "http://admin:admin@example/services/Service?wsdl";

但它也不起作用。

最后我通过添加解决了它authentication到选项。手册上说authentication默认值是基本身份验证,但只有当我明确设置它时,它才能工作。

$option = array(
    "trace"=>1,
    "login"=>"admin",
    "password"=>"admin",
    "authentication"=>SOAP_AUTHENTICATION_BASIC
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP SoapClient 与 BasicAuth 的相关文章

  • 在 PHP 扩展中,推荐从 std::string 返回值的方法

    我们有一个简单的 PHP 函数 其目的是调用 C 自由函数std string callLibrary std string 并返回其std string返回值 目前看起来是这样的 PHP FUNCTION call library cha
  • 如何处理 file_get_contents() 中的 403 错误?

    我在使用时遇到 403 错误file get contents 我想这样处理这个错误 if required function file get contents url detects there is a 403 error do so
  • Smarty 3 如何与 Zend Framework 2 一起使用?

    我很久以前就使用过 PHP5 目前正在尝试刷新我的知识 并通过 Zend Framework 2 和 Smarty 3 的知识来增强它 以实现一个可能的项目 我目前正在尝试弄清楚如何使用 Smarty 3 作为 Zend Framework
  • PHP MySQLi 多次插入

    我想知道准备好的语句是否与具有多个值的普通 mysql query 一样工作 INSERT INTO table a b VALUES a b c d VS sql db gt prepare INSERT INTO table a b V
  • 如果用户登录,则更改引导程序中的导航栏

    我有一个标准菜单 包括 登录 和 创建用户 的选项 我想要的是 当您创建用户或登录整个导航栏菜单来更改 例如 我的用户页面 和 注销 时 我该怎么做 div div
  • 是否可以在MySQL UDF中的IF条件中声明游标

    我可以在 if 语句中声明游标吗 如果可能的话我怎样才能做到 因为我刚刚做了这样的光标 CREATE FUNCTION fn test ProductID BIGINT 20 RETURNS DECIMAL 10 2 BEGIN DECLA
  • 在 Linux 控制台中返回一行?

    我知道我可以返回该行并用以下内容覆盖其内容 r 现在我怎样才能进入上一行来改变它呢 或者有没有办法打印到控制台窗口中的特定光标位置 我的目标是使用 PHP 创建一些自刷新的多行控制台应用程序 Use ANSI 转义码 http en wik
  • “composer”在 Windows 服务器中未被识别为内部或外部命令

    我使用的是Windows Server 2008操作系统 我下载作曲家安装程序 exe https getcomposer org download 并安装到我的电脑上 当我尝试时composer install 我收到错误 compose
  • 来自字符串的文件大小

    我如何从 php 中的字符串中获取 文件大小 我将字符串作为 blob 放入 mysql 数据库中 并且需要存储 blob 的大小 我的解决方案是创建一个临时文件并将字符串放入临时文件中 现在我可以从 字符串 中获取文件大小 但这个解决方案
  • 在 CentOS 6.5 上升级 PHP(最终版)

    我正在尝试更新我的 PHP 当前 v 5 3 3 到最新的稳定 PHP 版本 但它没有正常运行 并且显示没有任何内容可以更新 任何帮助都会有用的 不断地说 没有标记为更新的软件包 正如 Jacob 提到的 CentOS 软件包存储库目前似乎
  • 根据 WooCommerce 中的订单数量设置折扣

    在WooCommerce中 如何根据订单数量设置折扣 例如 我想根据客户订单应用折扣 首单折扣 50 美元 第二次订购折扣 30 美元 第三次订购折扣10美元 我搜索过互联网但没有找到任何可用的解决方案或插件 Thanks 这是一个挂钩的自
  • 帮助将二进制图像数据从 SQL Server 读取到 PHP 中

    我似乎无法找到将二进制数据从 SQL 服务器读取到 PHP 的方法 我正在开发一个项目 需要能够将图像直接存储在 SQL 表中 而不是文件系统上 目前 我一直在使用这样的查询 插入 myTable 文档 选择 从 OPENROWSET BU
  • 如何使用 JQuery 提取嵌套 HTML 中的文本?

    我这里有 HTML 代码 div class actResult style border solid table tbody tr td Order Number td td 1 td tr tr td Customer Number t
  • 如何使用 php 通过 https 下载文件

    我需要使用 PHP 下载 xml 文件 我可以在对文件进行curl 调用时通过设置以下选项来读取文件的内容 curl setopt http CURLOPT SSL VERIFYPEER false curl setopt http CUR
  • Php 会话标头已经发送错误[重复]

    这个问题在这里已经有答案了 可能的重复 php 标头已发送错误 https stackoverflow com questions 3319207 php headers already sent error 我已附上我的代码 该代码用于
  • 如何使用 facebook 用户登录我的网站?

    我想知道 facebook 如何让用户登录我们的网站 我的意思是用户需要注册到我的网站才能发表评论 我如何通过我的 php 代码检查它是否是登录用户 我听说你只能用javascript检查它是否是登录用户 感谢您的任何解释 您可以使用脸书
  • InvalidArgumentException 与 UnexpectedValueException

    我应该什么时候使用无效参数异常 http www php net manual en class invalidargumentexception php什么时候意外值异常 http www php net manual en class
  • localhost/test.php 不返回任何内容

    我正在遵循教程构建一个网络应用程序 我创建了一个简单的test php网络空间中的文件 var www html 问题是当我输入localhost test php在浏览器地址窗口中 它返回一个空页面 我试过localhost php in
  • Apache“无法初始化模块”,因为更改 PHP 配置后模块和 PHP 的 API 不匹配

    php v 给出了这个 PHP Warning PHP Startup memcache Unable to initialize module Module compiled with module API 20060613 PHP co
  • exec()、shell_exec()、curl_exec() 的安全漏洞

    有时 我会使用 exec shell exec 和curl exec 以下是典型用途 假设其中有 PHP 变量 即第一个变量中的 html 用户有可能修改其内容 从安全漏洞的角度来看 我应该关注什么 escapeshellcmd 和 esc

随机推荐

  • 在图片框中运行另一个应用程序

    这是我用来在图片框中运行另一个应用程序的示例代码 Imports System Diagnostics Imports System Runtime InteropServices Public Class Form1
  • Go 中在 EOF 上重新连接 TCP

    我有以下内容 In an init func if logStashHost lsconn err net Dial tcp logStashHost ToLogStash rec lsconn 然后两个函数 func ReadLogSta
  • 解压内容应用内购买ios

    如果进行应用内购买 Apple 托管的内容将以 zip 格式下载 我尝试解压缩这些内容 但提交使用 zipArchive 打开 zip 文件 ZipArchive za ZipArchive alloc init za delegate s
  • 针对类实现 QProgressBar

    我的 PyQt 程序有 2 个小部件 选择文件等 然后是一个显示解析文件结果的主窗口 该程序非常适合小型样本文件 但是当尝试解析较大的文件时 它会挂起 显示 未响应 然后在大约 30 秒左右后显示结果 我想在主窗口打开之前实现一个 QDia
  • 触摸时 ACTION_CANCEL

    我有以下类 它代表一个可触摸的视图并绘制一个滑动条 public class SlideBar extends View private int progress private int max private Paint backgrou
  • PHP COM口与DIO的连接

    我正在尝试用 PHP 连接称重机 我已经用超级终端测试过它工作正常 但是当我使用 PHP 代码时fopen or dio open它被执行但是当fgets or dio read被调用时 它挂起并且不显示任何内容 Fopen 示例 exec
  • 多个按键不起作用

    我在使用时遇到了密钥问题freeglut功能 所有按键都工作正常 除了ctrl alt D 我不知道为什么我做错的事情不起作用 这是代码 include
  • 一张表有多少个字段是正常的?

    好的 我正在创建一个游戏 我有一个表 其中保存了有关会员的大量信息 因此其中有很多字段 一张表有多少个字段是正常的 有关系吗 也许我应该将该信息分成二三四表 你怎么认为 规范化数据库 如果您觉得列太多 您可能有重复组 这建议您应该规范化数据
  • Python 套接字 gethostbyname() 仅返回一个 IP 地址

    我正在使用Python套接字做一些简单的实验 其中我有一个主机名 它用两个IP地址解析 但是当我使用时 socket gethostbyname demo sample com 我只获得一个 IP 地址 为什么会这样显示 有没有其他方法可以
  • 在 WinRT 中选择 XAML 的 ListView 和 GridView

    XAML中的GridView和ListView似乎是同一个控件 开发商如何在两者之间做出选择 GridView 控件通常水平滚动 此外 您还会看到项目之间的一些本机间距大于 ListView 中的间距 之所以存在这种间距 是为了考虑如何在
  • android:从应用程序代码检测应用程序的重新安装

    有没有办法在重新安装应用程序代码时进行检测 我看到可以通过监听广播接收器中的 PACKAGE REPLACED 事件来检测来自市场的应用程序更新 但是 如果从编辑器 eclipse 重新安装应用程序 这些事件不会传递到应用程序 我的要求是禁
  • 快速添加:执行被中断,原因:EXC_BAD_INSTRUCTION(代码= EXC_l386_INVOP,子代码= 0x0)

    我正在尝试在 Swift 中添加两个数字并打印其总和 import Foundation func solveMefirst firstNo Int secondNo Int gt Int return firstNo secondNo l
  • 如何修改log4j JsonLayout字段名称

    我已经使用此配置文件配置了 log4j 2 来编写我的MapMessage控制台
  • C二叉树,如何从树叶创建列表

    我需要建立树中所有叶子的列表例如 我有以下树 6 4 3 1 2 5 7 树节点类型定义 typedef struct treeNode int data struct treeNode parent struct treeNode lef
  • 如何在 Kubernetes 中移除(删除)注解

    有没有什么不同的方法kubectl edit删除 Kubernetes 中的注释 我不喜欢互动性kubectl edit 我更喜欢脚本中可用的东西 使用减号 在注释末尾签名kubectl annotate Example kubectl a
  • 字符串和字符数组之间的区别

    这些声明有何不同 String s MY PROFESSION char c MY PROFESSION 每种情况下的内存分配情况如何 要更正编译错误 请替换为以下内容之一char 陈述 String s MY PROFESSION cha
  • 计算机科学中的 Big-O 表示法有什么大不了的?

    Big O 表示法对我的日常 C 编程有何帮助 这只是一个学术练习吗 Big O 通过输入的大小来告诉您算法的复杂性 这是基本的如果你想知道算法将如何扩展 如果您正在设计一个大型网站并且拥有大量用户 那么处理这些请求所需的时间就很重要 如果
  • 如何仅在表格中的某些单元格上使用 CSS 悬停?

    如何仅在表格中的某些单元格上使用 CSS 悬停 我可以对那些我不想应用的应用程序将其关闭吗 我正在使用这个 td hover border style dotted border color F60 border width medium
  • 在哪里可以找到 Java prism 渲染可能的选项和文档?

    我的应用程序在 Canvas 生成方面遇到问题 我正在使用 JavaFx 设置此选项有帮助 Dprism order j2d 问题是我找不到 prism Prism 的任何文档 第二个问题是我想通过配置文件设置此选项 Properties
  • PHP SoapClient 与 BasicAuth

    我有一个 PHP 脚本尝试连接到 WSDL 我需要允许自签名并提供基本的身份验证详细信息 使用 SOAP UI 当我连接到 WSDL 时 系统会提示我输入用户名 密码 我得到了这个工作 我还发现每个请求还需要基本身份验证 因此在请求屏幕上