php 构造请求头,如何在php中生成发布和放置请求的Content-Md5标头

我正在构建一个rest api服务器,我正在尝试将curl请求中的Content-Md5头发送到api服务器.我很困惑如何计算md5哈希发送请求发送和放?我们不需要GET和删除标题吗?

解决方法:

您不需要为任何不包含正文的请求提供标头.这意味着在实践中,假设使用简单的CRUD API,您只需要为PUT和POST请求担心它,GET和DELETE将不需要包含它.

要包含的MD5哈希是通过将请求主体完整地通过md5()函数传递来计算的(在PHP中).使用cURL时,这意味着您必须手动将请求主体构造为字符串 – 您不能将数组长时间传递给CURLOPT_POSTFIELDS.

让我们想象一下,我想将以下数组发送到服务器:

$array = array(

'thing' => 'stuff',

'other thing' => 'more stuff'

);

如果我想将其作为JSON发布,我会做这样的事情:

$body = json_encode($array);

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');

curl_setopt($ch, CURLOPT_POSTFIELDS, $body);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(

'Content-Type: application/json',

'Content-Length: ' . strlen($body),

'Content-MD5: ' . base64_encode(md5($body, true))

));

// ...

同样,如果我想将它作为application / x-www-form-urlencoded发送,我只需将json_encode()更改为http_build_query()并更改Content-Type:标头.

标签:php,rest

来源: https://codeday.me/bug/20190901/1780186.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值