PHP:如何将xml参数发布到api?

时间:2016-08-11 14:40:43

标签: php xml

我必须发布到网址:https://rightsignature.com/api/templates.xml

其中一个参数是merge_fields,描述是:

指定从prepackageTemplate调用返回的角色的名称和电子邮件。角色可以是XML节点属性“merge_field_name”或“merge_field_id”的形式或由其引用。如果通过name(最简单的方法)指定,则具有指定名称的所有合并字段将采用指定的值。指定是否“锁定”发送方的值的可选节点可通过。

获得

这就是post xml看起来应该是这样的:

        <merge_fields>
          <merge_field merge_field_id="a_233_f309f82jklnm_232">
            <value>$100 per hour</value>
           <locked>true</locked>
          </merge_field>
          <merge_field merge_field_name="Employee Name">
            <value>J. Employee</value>
          </merge_field>
        </merge_fields>

这是xml响应的样子:

            <merge-fields>
              <merge-field>
                <page>1</page>
                <name>Company Name</name>
                <id>a_966_8bffa095998e41ecbdfb624b2fd_5671</id>
             </merge-field>
             </merge-fields>

我想将它设置为这样的数组吗? :

   $arr= array('merge_fields'=>
        array('merge_field_email'=>xxx@mail.com),
       "another_field"=>"another_value")
    )

https://rightsignature.com/api/templates.xml? . $arr

1 个答案:

答案 0 :(得分:0)

“好吧,基本上'它仍然是AJAX',”编码是XML而不是JSON。

您只需使用适当的XML操作原语来构建和取消构建您的消息,如下所述:http://php.net/manual/en/book.xml.php

这可能是API所谓的 SOAP。,如下所述:http://php.net/manual/en/book.soap.php。或者,它可能是 XML-RPC (“XML远程过程调用”),如下所述:http://php.net/manual/en/book.xmlrpc.php

这三个页面都涉及许多其他页面,这些页面的相关主题与您现在正在尝试的内容高度相关。

重要的是要仔细确定您正在处理的API的确切“风格”,以便使用最强大的现有代码库来以最高可能的抽象级别处理它。此外,在线研究(例如GitHub上的),看看是否可以找到已经引用此API的任何现有源代码或与其非常相似的内容。 (“不要做已完成的事情。”)

好消息是,你知道你正在着手“非常非常熟悉的任务”,这在PHP中得到了很好的支持。所以,借用Perl by-line:“有多种方法可以做到这一点。”搜索最强大的高效方式。