【发布时间】:2021-09-02 00:07:35
【问题描述】:
我正在通过 API 向另一个服务发送 HTTP Post 请求以创建订单。 问题是,它需要一些 HTTP 参数,这些参数是数组中的数组。
这些是我现在使用的参数:
"Content-Type: application/json",
"Accept: application/json",
"Stream-Nonce:".$randomstring2,
"Stream-Party:***************",
"Authorization: bearer ".$result_array["access_token"],
我需要添加这个:
"header": {
"orderNo": "ABCD123456",
"orderDate": "2018-07-23",
"requiredDate": "2018-07-31",
"partner": {},
"orderType": "DELIVERY",
"serviceLevel": "STANDARD",
"services": [],
"customer": {},
"customerOrderNo": "ABC1234567890",
"orderNotes": "These notes relate to the order",
"driverNotes": "These notes are for the driver",
"routeInfo": "CC05"
},
这直接来自我正在使用的服务文档。问题在于“标题”:{...}。
我尝试使用不同的数组格式,如下所示:
'Content-Type' => ' application/json',
'Accept' => ' application/json',
'Stream-Nonce' => ''.$randomstring2,
'Stream-Party' => '***************',
'Authorization' => ' bearer '.$result_array['access_token'],
在这种情况下,我相信只需输入 ... => array('yada yada' => 'yada');但是这样做之后,标头根本不起作用,发送请求时收到禁止消息。
我可以在这里做什么?谢谢。
【问题讨论】:
-
可能第二组是body发送的,不是http header。建议你用guzzlehttp代替curl
-
这里的文档:go2stream.net/API/redoc/index.html#tag/Orders/paths/…,它说它是“请求样本”和“有效负载”,不管它是什么,响应表在它下面
-
正如@nay 所说,看起来这些实际上并不是 HTTP 标头。您链接到那里的文档在
REQUEST BODY SCHEMA下方提到了header和collection。您只需发送一个 JSON 结构,如示例中所示,作为请求 body 内容。 (Stream-Nonce和Stream-Party明确列在HEADER PARAMETERS下面 - 那些 应该是 HTTP 标头。)