使用 PHP 格式化 HTTP POST 请求中的数据

Formatting data in HTTP POST request with PHP

我正在使用 API,它举例说明了他们希望如何格式化我即将提出的 POST 请求的数据。这是他们的例子:

un=chris&
key=xxxx&
origin=plot&
platform=lisp&
args=[[0, 1, 2], [3, 4, 5], [1, 2, 3], [6, 6, 5]]&
kwargs={"filename": "plot from api",
        "fileopt": "overwrite",
        "style": {
            "type": "bar"
        },
        "traces": [1],
        "layout": {
            "title": "experimental data"
        },
        "world_readable": true
 }

我对如何将 PHP 中现有数组中的这些数据放在一起感到困惑。据我了解,该示例显示了一个仅部分编码的编码 "string" ?截至目前,我正在通过从数组中提取键和值来自行将字符串放在一起。 我正在寻找一种更简洁的方法来使用现有方法来完成此操作?

我相信使用 http_build_query 会为您解决这个问题。 给定示例,这里是如何使用它的示例:

$args = array(array(0,1,2), array(3,4,5), array(1,2,3), array(6,6,5));

$kwargs = array(
    'filename' => 'plot from api',
    'fileopt' => 'overwrite'
    'style' => array('type' => 'bar'),
    'traces' => array(1),
    'layout' => array('title' => 'experimental data'),
    'word_readable' => true
);

 $request = array(
    'un' => 'chris',
    'key' => 'xxx',
    'origin' => 'plot',
    'platform' => 'lisp',
    'args' => $args,
    'kwargs' => $kwargs
 );

 $queryString = http_build_query($request);

 echo $queryString;

更多信息:https://php.net/http_build_query