tarkhov/guzzle-xml

Guzzle XML 请求和响应。

v1.0.0 2020-09-17 04:02 UTC

This package is auto-updated.

Last update: 2024-09-13 06:17:29 UTC


README

Guzzle XML 请求和响应。

内容

  1. 兼容性
    1. 版本支持
  2. 安装
    1. Composer
  3. 使用方法
    1. 请求选项
    2. 响应
  4. 作者
  5. 许可证

兼容性

版本支持

安装

Composer

composer require tarkhov/guzzle-xml

使用方法

请求选项

以下示例创建了一个具有 XML 体的 POST 请求。选项 xml 接受一个数组,该数组将被转换为 XML 文档。关于数组格式和转换方式,您可以详细阅读 Symfony XmlEncoder

<?php
use GuzzleHttp\HandlerStack;
use GuzzleHttp\Client;
use GuzzleXml\XmlMiddleware;

$stack = HandlerStack::create();
$stack->push(XmlMiddleware::xml(), 'xml');
$client = new Client(['handler' => $stack]);
$response = $client->post('https://example.com', [
  'xml' => [
    'package' => [
        '@language' => 'PHP',
        'name'      => 'Guzzle XML',
        'author'    => [
          '@role' => 'developer',
          '#'     => 'Alexander Tarkhov',
        ],
        'support'   => [
            'issues' => 'https://github.com/tarkhov/guzzle-xml/issues',
            'source' => 'https://github.com/tarkhov/guzzle-xml',
        ],
    ],
  ],
]);

因此,将发送一个带有 Content-type: text/xml 标头的 XML 请求,其内容如下

<?xml version="1.0"?>
<package language="PHP">
   <name>Guzzle XML</name>
   <author role="developer">Alexander Tarkhov</author>
   <support>
      <issues>https://github.com/tarkhov/guzzle-xml/issues</issues>
      <source>https://github.com/tarkhov/guzzle-xml</source>
   </support>
</package>

响应

使用中间件自动将您的 JSON 响应转换为 XML。

<?php
use GuzzleHttp\HandlerStack;
use GuzzleHttp\Client;
use GuzzleXml\XmlMiddleware;

$stack = HandlerStack::create();
$stack->push(XmlMiddleware::jsonToXml());
$client = new Client(['handler' => $stack]);
$response = $client->post('https://example.com');
$xml = $response->getBody();
echo $xml;

如果您的 JSON 响应是

{
   "package": {
      "@language":"PHP",
      "name":"Guzzle XML",
      "author": {
         "@role":"developer",
         "#":"Alexander Tarkhov"
      },
      "support": {
         "issues":"https:\/\/github.com\/tarkhov\/guzzle-xml\/issues",
         "source":"https:\/\/github.com\/tarkhov\/guzzle-xml"
      }
   }
}

这将自动转换为如下 XML

<?xml version="1.0"?>
<package language="PHP">
   <name>Guzzle XML</name>
   <author role="developer">Alexander Tarkhov</author>
   <support>
      <issues>https://github.com/tarkhov/guzzle-xml/issues</issues>
      <source>https://github.com/tarkhov/guzzle-xml</source>
   </support>
</package>

作者

Alexander Tarkhov

许可证

本项目采用 MIT 许可证 许可 - 详细内容请参阅 LICENSE 文件。