当前位置: 首页 > 知识库问答 >
问题:

php soap空输出

颜华池
2023-03-14

我是一个经验丰富的PHP程序员,但我实际上对SOAP一无所知。现在我必须使用它,因为我的客户需要自动生成DHL批处理标签。我需要一些简单有效的帮助。

所以我向DHL发送了一个原始的XML请求,我已经从他们的示例程序中复制了消息,但我总是得到一个空结果(没有错误)。我的PHP代码如下所示:

require_once('nusoap/lib/nusoap.php');

$endpoint = "https://test-intraship.dhl.com/intraship.57/jsp/Login_WS.jsp";

$client = new nusoap_client($endpoint, false);

$msg = $client->serializeEnvelope("
<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\"
 xmlns:cis=\"http://dhl.de/webservice/cisbase\" xmlns:de=\"http://de.ws.intraship\">
<soap:Header>
<cis:Authentification><cis:user>bzalewski</cis:user>

(...) 

");

$result=$client->send($msg, $endpoint);

echo $result;

如前所述,消息只是复制的,所以它必须是正常的。我尝试了另一个endpoint:http://test-intraship.dhl.com/ws/1_0/ISService/DE.wsdl,但也没有结果(没有错误)。

请帮忙。

共有2个答案

锺霍英
2023-03-14

web服务器是否响应状态为200?你说你得到的答复是空的,对吗?

使用这个免费的GUI工具(http://webservicestudio.codeplex.com/)进行webservice调用和可视化。您可以轻松加载WSDL并开始进行调用。

顺便说一句,做两份工作和学习是件好事,伙计!坚持下去。

乜心思
2023-03-14

使用soap_client时,您不需要传递原始XML。相反,您查看WSDL并决定您要调用哪个Web服务函数,以及它需要什么参数。然后您创建一个肥皂客户端对象,通过传递wsdl url以及您是否想要跟踪(它有助于调试和东西)。然后使用此肥皂客户端对象调用您想要调用的任何Web服务函数。如果有函数调用所需的参数,请将它们作为数组传递。我在下面发布了一个示例代码,它使用您提供的WSDL并调用其getVersion函数。请注意,此函数不需要参数,因此我不会传递任何内容。希望这有助于您开始使用...

<?
$client = new SoapClient('http://test-intraship.dhl.com/ws/1_0/ISService/DE.wsdl', array('trace' => 1));
$res = $client->getVersion();
print_r($res); 
?>

这将从DHL Web服务返回以下值:

stdClass Object
(
    [Version] => stdClass Object
        (
            [majorRelease] => 1
            [minorRelease] => 0
            [build] => 14
        )

)
 类似资料:
  • 主要内容:1 Fastjson默认的空值处理,2 Fastjson空值处理的方法,3 忽略空值的示例,4 不忽略空值的示例1 Fastjson默认的空值处理 在Fastjson中,默认情况下是不输出空值(NULL)的。无论Map中的NULL和对象属性中的NULL,序列化的时候都会被忽略不输出,这样会减少产生文本的大小。但如果需要输出空值怎么做呢? 2 Fastjson空值处理的方法 如果你需要输出空值,需要设置SerializerFeature常量值来控制NULL值的输出,下面列出不同情况的空值

  • 这个用例是一个服务,它将一系列未压缩的。wav媒体片段手动编码为。m4S片段,以便通过MPEG-DASH进行广播,使用ffmpeg将。wav压缩到。aac,使用Sannies/mp4Parser将aac音频组装成。m4S媒体片段。 我创建了这个公共GitHub项目来完整地再现这个问题。 例如,以下是自定义ChunkFragmentM4SBuilder.java类。 null 注意,但是,这种方法对

  • 我使用正则表达式删除了XML中一些不需要的项。现在,我需要打印所有包含多个子元素的包含服务节点。 这是我使用的代码; 如果我运行这个,我会得到下面的响应。 但是,我可以将选定的元素打印到包括服务节点之外。请帮帮忙!

  • 问题内容: 我想构建一个React组件库作为节点模块,然后将其导入到不同的项目中。但是,如果我尝试导入组件,它只会返回一个空对象。 button.jsx: index.js webpack.config.js package.json中的主要属性是bundle.js 我发现当我在项目中导入Button时,它只是一个空对象。在我看来,似乎webpack没有正确捆绑索引文件。有什么想法在这里可能出什么

  • 我试图输出一个矩阵:

  • 我为3和2.7安装了selenium python。我运行以下脚本: 1) vi test.py: 我从输出中一无所获。如果我去掉参数,让它保持基本状态: 2) vi new.py: 我安装:snap install chromium sudo apt-get install chromium-browser chromium-chrome driver pip install selenium