标签: nusoap

如何确定SOAP消息的最大大小?

我在PHP 5.2.6上使用NuSOAP,我发现最大消息大小只有1000个字节(这使得很难做任何有意义的事情).这是在端点的WSDL中设置的还是我可以在NuSOAP中配置的东西?

php soap wsdl nusoap

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

如何通过PHP调用C#Web服务?

我使用ASP.NET编写了一个Web服务(在C#中),我正在尝试使用NuSOAP编写一个示例PHP客户端.我绊倒的地方是如何做到这一点的例子; 一些显示soapval正在使用(我不太了解参数-比如通过falsestring类型等),而另一些则只是采用了直板array秒.假设我所报告的Web服务的WSDL http://localhost:3333/Service.asmx?wsdl看起来像:

POST /Service.asmx HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/webservices/DoSomething"

<?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>
    <DoSomething xmlns="http://tempuri.org/webservices">
      <anId>int</anId>
      <action>string</action>
      <parameters>
        <Param>
          <Value>string</Value>
          <Name>string</Name>
        </Param>
        <Param>
          <Value>string</Value>
          <Name>string</Name>
        </Param>
      </parameters>
    </DoSomething>
  </soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)

我的第一次PHP尝试看起来像:

<?php
require_once('lib/nusoap.php');
$client = new nusoap_client('http://localhost:3333/Service.asmx?wsdl');

$params = array(
    'anId' => 3, //new soapval('anId', 'int', 3),
    'action' => 'OMNOMNOMNOM',
    'parameters' => array(
        'firstName' => 'Scott',
        'lastName' => 'Smith'
    )
); …
Run Code Online (Sandbox Code Playgroud)

php c# web-services nusoap

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

nuSOAP WebService的优点?

我一直在使用nuSOAP在PHP中编写一个演示Web服务.

我想知道nuSOAP对SOAP PHP5类的优势是什么.

此外,这是一个用作模型的测试Web服务.

我想知道哪些是典型的场景(一般来说是Webservices,而不仅仅是PHP)我应该测试一下,例如提供一个web方法,从服务器返回一个返回项目列表的对象.

php web-services nusoap

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

nuSoap函数不是有效的方法

在尝试实例化我的nuSoap方法时authenticateUser,它说:

致命错误:未捕获的SoapFault异常:[Client]函数("authenticateUser")不是/Applications/MAMP/htdocs/projo/dev/home.php:14中此服务的有效方法

但是,当我替换已经有效的方法名称时,一切正常.所以我认为实例化语法没有错.

/*-----------
Authenticate User
------------*/
$server->register(
    // method name
    'authenticateUser',

    // input parameters
    array('sessionUserName' => 'xsd:string', 'sessionHash' => 'xsd:string', 'user' => 'xsd:string', 'pass' => 'xsd:string'),        

    // output parameters
    array('return' => 'xsd:string'),

    // namespace
    $namespace,

    // soapaction
    $namespace . '#authenticateUser',

    // style
    'rpc',

    // use
    'encoded',

    // documentation
    'authenticates a user and returns a json array of the user info'
);

function authenticateUser($sessionUserName, $sessionHash, $user, $pass)
{
    //Check to see if a countryCode was provided …
Run Code Online (Sandbox Code Playgroud)

php soap wsdl nusoap

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

如何通过PHP读取SOAP回复包络

如何从SOAP回复信封中读取error_code?我的PHP版本是:5.2.0.

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
 <soap:Body>
  <Response xmlns="http://xxx.gateway.xxx.abcd.com">
   <return>
      <transaction_id>1234567</transaction_id>
      <error_code>109</error_code>    
   </return>
  </Response>
 </soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)

我只需要读取error_code tag的值.其值为:109

我正在使用nusoap.我使用下面的代码但没有正常工作:

$response=htmlspecialchars($client->response, ENT_QUOTES);
$xml = simplexml_load_string($response); 
$ns = $xml->getNamespaces(true); 
$soap = $xml->children($ns['soap']); 
$error_code = $soap->body->children($ns['error_code']);
Run Code Online (Sandbox Code Playgroud)

php soap nusoap

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

php使用WCF SSL SOAP Client 1.2

我有一些问题从PHP消耗wsHttpBinding WCF.我最初尝试使用SOAP1.2,但无法指定WS Action.

我下载了nusoap库.我最初收到一个错误,说由于类型不匹配(text/xml而不是预期的application/soap + xml),webservice不会接受数据.我设法对nusoap.php进行了更改,以将数据作为application/soap + xml发送.现在,这不会引发错误,我从服务器得到400错误的请求错误.

我可以从WCFTestClient和SOAPUI中使用服务而不会有任何麻烦,但是无法让它从PHP中传播.我甚至从SOAPUI复制了整个soap信封,并将nusoap.php中的$ soapmsg设置为完全相同,但它仍然失败.

所以任何人都想提供一些指导.

编辑 这是我在SOAP 1.2中尝试的代码

$params  = array("soap_version"=> SOAP_1_2,
                "trace"=>1,
                "exceptions"=>0,
                );

$client = @new SoapClient('https://localhost/wcftest/Service.svc?wsdl',$params);

$retval = $client->GetData(array('value'=>'stuff'));
if (is_soap_fault($retval)) {
    trigger_error("SOAP Fault: (faultcode: {$retval->faultcode}, faultstring: {$retval->faultstring})", E_USER_ERROR);
}
Run Code Online (Sandbox Code Playgroud)

编辑#2这是用于SOAPUI的代码

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/">
   <soap:Header xmlns:wsa="http://www.w3.org/2005/08/addressing"><wsa:Action>http://tempuri.org/IService/GetData</wsa:Action></soap:Header>
   <soap:Body>
      <tem:GetData>
         <!--Optional:-->
         <tem:value>stuff</tem:value>
      </tem:GetData>
   </soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)

在按照下面的Gords链接提到的手动添加SoapHeaders后,我在使用netbeans进行调试时将其作为__last_request并仍然出现相同的错误

    "<?xml version="1.0" encoding="UTF-8"?>
    <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://tempuri.org/">
<env:Header>
<ns1:Action>http://tempuri.org/IService/GetData</ns1:Action>
</env:Header>
<env:Body><ns1:GetData><ns1:value>stuff</ns1:value></ns1:GetData></env:Body></env:Envelope>
Run Code Online (Sandbox Code Playgroud)

任何建议?

谢谢!安迪

php ssl wcf nusoap

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

SoapClient到nusoap,Server没有识别HTTP Header SOAPAction的值

我们正在运行PHP 5.3.18,由于一些奇怪的原因我无法安装php-soap,因此我无法使用SoapClient类...

我现在使用的最后的NuSOAP(应该是用PHP 5.3.18兼容)和翻译从SoapClient的代码nusoap_client.

此代码使用SoapClient并且工作正常

$s_WSPROTOCOL = 'https';
$s_WSHOSTNAME = 'xxxxxxxx.yyyyyy.tdl';
$s_WSPORT = '';
$s_WSPATHNAME = 'webservices/service.asp?WSDL';         
$s_WSTIPOOP = 'MyFunction';

$parameters['Username'] = '999';
$parameters['Login'] = 'Master';
$parameters['Password'] = 'universe';
$parameters['IdServ'] = '5';
$parameters['IdCard'] = '555';
$parameters['Controllo'] = '';

echo $s_WSTIPOOP."<br />";
echo $s_WSPROTOCOL."://".$s_WSHOSTNAME.$s_WSPORT."/".$s_WSPATHNAME."<br /><br /><br />";     

try 
{
    $SOAP = new SoapClient($s_WSPROTOCOL."://".$s_WSHOSTNAME.$s_WSPORT."/".$s_WSPATHNAME, array('trace' => 1));                
    $result = $SOAP->__soapCall($s_WSTIPOOP, array("parameters" => $parameters), null);
    foreach ($result as $key => $value) 
    {
      echo "<b>".$key."</b><br />";
      print_r($value);
      echo "<br />";
    }

} …
Run Code Online (Sandbox Code Playgroud)

php soap wsdl nusoap

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

如何调试需要基本身份验证而根本不响应的php nusoap调用?

我正在尝试重新编写一个Drupal模块,该模块落后于它所连接的网关的API.

我认为导致问题的代码的剥离版本如下:

$namespace = ($this->testing) ? 'https://api.sandbox.ewaypayments.com/' : 'https://api.ewaypayments.com/';
$endpoint = $this->url;
$httpUsername = $this->user_name;
$httpPassword = $this->password;

$client = new nusoap_client($endpoint, TRUE);
$client->setCredentials($httpUsername, $httpPassword, 'basic');
$client->response_timeout = 50;
$result = $client->call($operation, array('request' => $params), $namespace);
Run Code Online (Sandbox Code Playgroud)

$result是一致的假.如果我把这样的东西放到我的代码中,它也会一直返回empty:

$error = $client->getError(); 
watchdog('connection_message', $error);
Run Code Online (Sandbox Code Playgroud)

我有点超出我的深度,在我的Apache日志或Drupal看门狗中没有任何错误消息我看不到前进的方向.

php nusoap

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

如何让Axis2处理数组?

我正在从PHP NuSoap实现中检索数据,它正在返回如下数据:

<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">

<SOAP-ENV:Body>

<ns1:getHashCodeAllTablesResponse xmlns:ns1="urn:getSchemaForRhythms">

<return xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType=":[121]">

<item xsi:type="xsd:">

<md5Hash xsi:type="xsd:string">e294967afe9834bf8477252ac0c3686e</md5Hash>

<tableName xsi:type="xsd:string">SYSCONGLOMERATES</tableName>

<isView xsi:type="xsd:string">false</isView>

<viewDefinition xsi:type="xsd:string">null</viewDefinition>

</item>
Run Code Online (Sandbox Code Playgroud)

我认为这是问题所在: <return xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType=":[121]">

当我将Axis2 soap客户端指向服务时,我收到此错误:

org.apache.axis2.AxisFault: org.apache.axis2.databinding.ADBException: Unsupported type http://schemas.xmlsoap.org/soap/encoding/ Array

这是我正在尝试做的一个非常简单的java示例:

public static void main(String[] args) {
    // TODO code application logic here
    try{
        GetSchemaForRhythmsStub stub = new GetSchemaForRhythmsStub(null,"http://test.test.com/sqlSchemaService/schemaBuilder.php" );
        GetSchemaForRhythmsStub.GetHashCodeAllTablesE response2= new GetSchemaForRhythmsStub.GetHashCodeAllTablesE();
        stub.getHashCodeAllTables(response2);
    }catch(Exception ex)
    {
       System.out.println(ex.toString());

    }
}
Run Code Online (Sandbox Code Playgroud)

我找不到任何与Array数据类型和Axis相关的文档.我错过了什么吗?

谢谢,

java xml soap nusoap

2
推荐指数
1
解决办法
6677
查看次数

PHP SoapClient版本不匹配

除了此错误消息外,这里没有什么要写的:

SoapFault对象([消息:受保护] =>版本错误[string:Exception:private] => [code:protected] => 0 [file:protected] => C:\ wamp \ www \ nsoap \ phpclient.php [line :protected] => 10 [trace:Exception:private] => Array([0] => Array([file] => C:\ wamp \ www \ nsoap \ phpclient.php [line] => 10 [function] => __call [class] => SoapClient [type] =>-> [args] => Array([0] => getIMIPremium [1] => Array([0] => Array([imiPolicy] => Array( [expiryDate] => 23-09-2013 [imiInsured] => Array([item] => Array([item] => Array([age] => 23 [basicSumInsured] => 33233 [coverRageType] => 12 [ dateOfBirth] => 26-09-1986 …

php xml soap nusoap

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

标签 统计

nusoap ×10

php ×9

soap ×6

wsdl ×3

web-services ×2

xml ×2

c# ×1

java ×1

ssl ×1

wcf ×1