标签: nusoap

NuSOAP:如何更改内容类型的请求?

在使用.NET WCF Web服务时,我得到以下响应(错误):

不支持的HTTP响应状态415无法处理消息,因为内容类型为'text/xml; charset = UTF-8'不是预期的类型'application/soap + xml; 字符集= UTF-8' .

如何更改内容类型?我在NuSOAP论坛/文档中找不到它,或者我可能会忽略某些东西....

php web-services content-type nusoap

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

NuSOAP和数组响应

我有NuSOAP网络服务器:...

    $server->register('getMembersEvents',       
        array('date' => 'xsd:string'),                      
        array('Events' => 'tns:Events'),
        'urn:my',             
        false,                          
        'rpc',                          
        false,                          
        'Description'               
    );

    $server->wsdl->addComplexType(
        'Events',
        'complexType',
        'array',
        '',
        'SOAP-ENC:Array',
        array('Event' =>array ('name' => 'Event', 'type' => 'tns:Event')),
        array(
            'Event' => array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:Event[]')
        ),
        'tns:Event'
    );

$server->wsdl->addComplexType(
    'Event',
    'complexType',
    'struct',
    'all',
    '',
    array(
        'field1' => array('name' => 'MemberNumber', 'type' => 'xsd:int'),
                 // ...
        'fieldN' => array('name' => 'WebMemberID', 'type' => 'xsd:int')
    )
);
Run Code Online (Sandbox Code Playgroud)

一切正常,但响应似乎是:

<SOAP-ENV:Body>
  <ns1:getMembersEventsResponse xmlns:ns1="urn:eliza">
         <Events xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:Event[2]">
            <item xsi:type="tns:Event">
               <field1 xsi:type="xsd:int">123</field1>
                  ...
               <fieldN xsi:type="xsd:int">123</fieldN>
            </item>
            <item xsi:type="tns:Event">
               <field1 …
Run Code Online (Sandbox Code Playgroud)

php nusoap

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

使用NuSOAP检索结果时出现XML错误(无效字符)

我正在使用NuSOAP与第三方API进行交互,包括运行数据库查询和检索结果.它运行得非常可靠,但我遇到了一个特定查询的问题.NuSOAP生成错误而不是返回结果: XML error parsing SOAP payload on line 2: Invalid character

事实证明,结果集包含以下内容: Léa Lincoln.当我手动将重音字符更改为"常规"字符时,查询工作正常,没有来自NuSOAP的错误.

所以,我的问题是如何处理这个问题.我无法控制来自数据库的数据,我需要NuSOAP不要抛出错误并在每次出现非标准字符时停止.谢谢.--Jeff

php xml nusoap

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

使用PHP以不同方式解析SOAP响应

可能重复:
如何在没有SoapClient的情况下解析SOAP响应

我有一个简单的nuSoap XML响应:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
        <LoginResult xmlns="http://Siddin.ServiceContracts/2006/09">FE99E5267950B241F96C96DC492ACAC542F67A55</LoginResult>
    </soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)

现在,我试图与解析它simplexml_load_string的建议在这里:解析用SimpleXML的XML具有多个命名空间,在这里:故障使用SimpleXML解析PHP中的SOAP响应,但我无法得到它的工作.

这是我的代码:

$xml = simplexml_load_string( $this->getFullResponse() );
$xml->registerXPathNamespace('soap', 'http://schemas.xmlsoap.org/soap/envelope/');
$xml->registerXPathNamespace('xsi', 'http://www.w3.org/2001/XMLSchema-instance');
$xml->registerXPathNamespace('xsd', 'http://www.w3.org/2001/XMLSchema');

foreach($xml->xpath('//soap:Body') as $header) {
    var_export($header->xpath('//LoginResult')); 
}
Run Code Online (Sandbox Code Playgroud)

但我仍然得到结果:

/* array ( )
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?或者我想知道什么简单的事情?


使用DOM的MySqlError工作结果:

$doc = new DOMDocument();
$doc->loadXML( $response  );
echo $doc->getElementsByTagName( "LoginResult" )->item(0)->nodeValue;
Run Code Online (Sandbox Code Playgroud)

使用SimpleXML by ndm的工作结果:

$xml = simplexml_load_string( $response );
foreach($xml->xpath('//soap:Body') as $header) {
    echo (string)$header->LoginResult;
}
Run Code Online (Sandbox Code Playgroud)

php soap nusoap

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

NuSoap soapClient调用"标记html中的数据过早结束"错误

我正在尝试调用我创建的Web服务,但服务器返回以下错误:

致命错误:未捕获的SoapFault异常:[WSDL] SOAP-ERROR:解析WSDL:无法从" http://www.savepoints.com.br/server.php?WSDL " 加载:标记html行中的数据过早结束2 in /home/storage/a/39/1c/site1365816459/public_html/cliente.php:5堆栈追踪:#0 /home/storage/a/39/1c/site1365816459/public_html/cliente.php(5):SoapClient - > 第5行/home/storage/a/39/1c/site1365816459/public_html/cliente.php中的SoapClient(' http://www.save ...')#1 {main}

在这里,我展示了两个脚本:

server.php(它是WSDL服务器)

<?php

require('classes/nusoap/nusoap.php');

$server = new soap_server();

$server->configureWSDL('stockserver', 'urn:stockquote');

$server->register('getStockQuote',
    array('symbol' => 'xsd:string'),
    array('return' => 'xsd:decimal'),
    'urn:stockquote',
    'urn:stockquote#getStockQuote');

$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';

$server->service($HTTP_RAW_POST_DATA);

?>
Run Code Online (Sandbox Code Playgroud)

cliente.php

<?php

require('classes/nusoap/nusoap.php');

$c = new SoapClient('http://www.savepoints.com.br/server.php?WSDL');

$stockprice = $c->call('getStockQuote',array('symbol' => 'ABC'));

echo "The stock price for 'ABC' is ".$stockprice.".";

?>
Run Code Online (Sandbox Code Playgroud)

php wsdl web-services nusoap

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

注意使用nusoap进行字符串转换

我正在使用nosoap在PHP中开发一个Web服务.这是我的文件,webservice.php

<?php
require_once "nusoap/nusoap.php";

$namespace = "urn:mywsdl";
$server = new soap_server();
$server->configureWSDL('myWS', $namespace);
$server->wsdl->schemaTargetNamespace = $namespace;

$server->wsdl->addComplexType('datosBasicos', 'complexType', 'struct', 'all', '', array(
    'codigo' => array(
        'name' => 'codigo',
        'type' => 'xsd:string'
    ),
    'nombre' => array(
        'name' => 'nombre',
        'type' => 'xsd:string'
    )
));


$server->wsdl->addComplexType('arraydatosBasicos', 'complexType', 'array', '', 'SOAP-ENC:Array', array(), array(
    array('ref' => 'SOAP-ENC:arrayType',
        'wsdl:arrayType' => 'tns:datosBasicos[]')
        ), 'tns:datosBasicos'
);


$server->register('saludar', array('nombre' => 'xsd:string'), array('return' => 'tns:arraydatosBasicos'), $namespace);

function saludar($nombre) {
    $array[] = array('codigo' => '123', 'nombre' => 'test');
    $array[] = …
Run Code Online (Sandbox Code Playgroud)

php web-services nusoap

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

PHP nusoap webservice安全性

我在php中编写soap服务器和soap客户端.对于soap服务的身份验证,我想使用"usernametoken"来保证安全性.任何人都可以使用nusoap向我发送在服务器和客户端中应用的示例.

我正在使用nusoap来编写soap服务.

谢谢和问候,neetha

php web-services nusoap

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

在Drupal中发出SOAP请求?

我正在尝试使用以下格式实现与Drupal 6的SOAP调用:

POST /0_5/ClassService.asmx HTTP/1.1
Host: api.mindbodyonline.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://clients.mindbodyonline.com/api/0_5/AddClientsToClasses"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <AddClientsToClasses xmlns="http://clients.mindbodyonline.com/api/0_5">
      <Request>
        <ClientIDs>
          <string>string</string>
          <string>string</string>
        </ClientIDs>
        <ClassIDs>
          <int>int</int>
          <int>int</int>
        </ClassIDs>
        <Test>boolean</Test>
        <RequirePayment>boolean</RequirePayment>
      </Request>
    </AddClientsToClasses>
  </soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)

我是SOAP的新手,所有的Web文档都不适用于Drupal.此外,我必须在SOAP(而不是HTTP GET或POST)中进行此调用.

我如何在Drupal中进行SOAP调用?您能否使用上面的示例请求格式提供有效的代码示例?

api soap drupal nusoap drupal-6

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

通过 php 调用 Web 服务 -&gt; 错误:未找到传输或尚不支持所选传输

错误:未找到传输方式,或尚不支持所选传输方式!

当我调用网络服务时会发生此错误。

这是我的代码:

include("lib/bankmellat/nusoap.php");
$client = new \bankmellat\nusoap_client('https://pgwstest.bpm.bankmellat.ir/pgwchannel/services/pgw?wsdl');
$namespace = 'http://interfaces.core.sw.bps.com/';
$parameters = array();
$parameters['terminalId'] = $terminalId;
$parameters['userName'] = $userName;
.
.
.
$result = $client->call('bpPayRequest', $parameters , $namespace);
echo '<h2>Error!!</h2><pre>' . $client->getError(); . '</pre>';
Run Code Online (Sandbox Code Playgroud)

Ubuntu 12.04

阿帕奇2

PHP 5.3.10

cURL 在 php 上启用 - 版本:7.21.3

cURL 支持的协议:dict、file、ftp、ftps、gopher、http、https、imap、imaps、ldap、ldaps、pop3、pop3s、rtsp、smtp、smtps、telnet、tftp

我必须说,我在具有几乎相似资格的另一台服务器上实现了此代码,并且它们仍在工作!

请帮助解决这个问题..伙计们!谢谢。

php soap web-services nusoap

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

如何在 xampp(php 版本:7.1.11)中启用soap 客户端?

安装步骤:

1) 从http://sourceforge.net/projects/nusoapforphp53/下载 php-soap(NuSOAP for PHP)

2) 用编辑器打开“php.ini”配置文件,找到“可加载扩展(模块)所在的目录”。

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
; extension_dir = "ext"
extension_dir = "D:/xammp/php/ext"
Run Code Online (Sandbox Code Playgroud)

3)解压Step#1下载的文件内容,放到上面的目录“ext”中。它提取到自己的目录“nusoap-for-php5.3-0.7.3?”中。只需将整个目录复制到“D:/xammp/php/ext”

4) 在 php.ini 中,寻找取消注释 php_soap.dll 扩展名以加载它。

//找到如下所示的行

;extension=php_soap.dll
Run Code Online (Sandbox Code Playgroud)

//取消注释如下:

extension=php_soap.dll
Run Code Online (Sandbox Code Playgroud)

保存编辑的 php.ini 文件并关闭它。

5) 最后,重启服务器所有服务并重新加载服务器配置文件。

但是 phpinfo 没有显示启用的肥皂,屏幕短片是从谷歌收集的,只是启用肥皂客户端的图像显示..
在此处输入图片说明

解决办法是什么??

php soap soap-client nusoap

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

标签 统计

nusoap ×10

php ×9

web-services ×5

soap ×4

api ×1

content-type ×1

drupal ×1

drupal-6 ×1

soap-client ×1

wsdl ×1

xml ×1