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

时间:2015-04-24 09:47:07

标签: php http formatting http-post

我使用了一个API,该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中的现有数组中感到困惑。根据我的理解,该示例显示了编码的"字符串"那只是部分编码?截至目前,我通过从数组中提取键和值,将所有字符串放在一起。 我正在寻找一种更简洁的方法来使用现有方法吗?

1 个答案:

答案 0 :(得分:0)

我相信使用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