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

使用PHP的XML RPC连接

尉迟雅昶
2023-03-14

是否有人创建了连接到Adestra的代码。com的XML RPC API与PHP。

我在这里看到了几个XML RPC示例,但没有一个演示如何通过头发送用户名和密码验证。根据Adestra的支持:-

“我们使用HTTP基本身份验证,它要求用户名和密码作为标头传递。大多数XML-RPC客户端将通过公开更方便的接口来提供凭据来为您处理此问题。为了确保凭据安全传递,请通过https连接到API(https://app.adestra.com/api/xmlrpc)."

我[认为我]理解这里的基本过程,即您使用XML RPC库将函数调用和参数编码为XML格式,并从服务器获得响应,但您将如何发送身份验证?

任何帮助非常感谢。

共有1个答案

亢奇
2023-03-14

首先,您必须下载XMLRPC客户端库。该库用于创建一个XMLRPC对象,该对象将与ADESTRA API服务通信。

下面是调用APIcontact.search方法的示例。其他API方法的原则保持不变:

//******* LOGIN DATA*******/
$account = 'account';
$username = 'username';
$password = 'password';
$adestraCoreTable=1;


/**INITIALIZE API*****/
require_once('xmlrpc.inc');//First inlcude XMLRPC client library


//Calling Adestra API with our credentials
$xmlrpc= new xmlrpc_client("http://$account.$username:$password@new.adestra.com/api/xmlrpc");
$xmlrpc->setDebug(0);
$xmlrpc->request_charset_encoding="UTF-8";


$msg = new xmlrpcmsg(
                    "contact.search",
                    array(
                        //Set user id
                        new xmlrpcval($adestraCoreTable, "int"),
                        new xmlrpcval(
                            array(
                                "email"=> new xmlrpcval("test@test.com", "string"),
                            ),"struct"
                        )
                    )

                );
$response = $xmlrpc->send($msg);//Send request, and get the response


if($response->faultCode()){//API call not succeed. This can happen when there is no connection
    $errorMessage=htmlspecialchars($response->faultString());
    $errorCode=htmlspecialchars($response->faultCode());
}

$returnValue = php_xmlrpc_decode($response->value());//Parse API return
if(empty($returnValue)){//If return value is empty, user not find in Adestra, we should log that
    $errorMessage="Searching user by mail did not succeed! Problably there is no this user in Adestra DB";
    continue;///SCRIPT MUST continue for other users
}
$adestraUSERID=$returnValue[0]["id"];//Use this ID for what ever you want
 类似资料:
  • XmlRpc++ 是 C++ 语言对 XML-RPC 协议的实现。XML-RPC 协议的目的是使远程过程调用简单:它编码数据的一个简单的XML格式,并使用HTTP进行通信。 XmlRpc + +的设计可以很容易地纳入的XML - RPC客户端和服务器支持到C + +应用程序。

  • XML-RPC是一个远程过程调用(remote procedure call,RPC)的分布式计算协议,通过XML将调用函数封装,并使用HTTP协议作为传送机制。 XML-RPC协定是已登记的专利项目,由Phillip Merrick、Stewart Allen及Joseph Lapp共同持有,于1998年3月提出申请,指其将用于一个构想中的应用程式,并于2006年4月获得接纳。现时这个专利由位于

  • 我使用Magento 1.9并安装GoDataFeed扩展以从Magento导入产品。我尝试通过SOAP API将GoDataFeed与Magento连接: 并成功连接。 但当我通过XMLRPC连接时: 它返回错误:640:方法“登录”不存在,故障代码2:访问被拒绝。 我使用的2种方法1个帐户已在系统中配置用户/角色 在SOAP/XML-RPC用户中的用户设置中,有“当前管理员密码”项。基于每个I

  • Apache XML-RPC 是 一个 Java 语言对 XML-RPC 协议的封装。 示例代码: import org.apache.xmlrpc.client.XmlRpcClient;import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;XmlRpcClientConfigImpl config = new XmlRpcClientCo

  • xmlrpc-epi 是一个 C 语言对 XML-RPC 协议的实现。它提供简单的方法来发起 RPC 请求,它本身不包括传输层,如HTTP 。API主要是写在内部使用Epinions.com的专有代码 ,以及后来又修改把概念从xmlrpc议定书。它通过xmlrpc验证套件的测试。

  • go-xmlrpc 是 Go 语言实现的 XMLPRC 客户端服务器端开发包。