php - Postman 和 cURL 返回不同的输出
问题描述
这是我在邮递员中运行的网址:- http://213.252.244.214/create-signature.php
。它有两个参数string
和key
。它将返回input
您输入的内容和输出,RJAGDhoz8yDJ7GwVLberI/NMYy2zMTTeR9YzXj7QhCM=
但如果我从 curl 运行它,那么它正在返回D9UmS6r/qg0QI/0eIakifqrM3Nd1g6B3W7RCsiyO7sc=
。输出为 JSON 格式。以下是 cURL 代码:-
public function create_signature($input, $key) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'http://213.252.244.214/create-signature.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "string=$input&key=$key");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
$json = json_decode($output);
$signature = $json->output; echo $signature; echo '<br>';
curl_close($ch);
return $signature;
}
示例字符串是:-2019-01-23 14:00:594lzUTYHw01dW5EmPan01M07hEiWUaEmdKl3kzpUUqak=Ha2wZwz46l7vSboxVNx3/DAUYsInjjKtAbDSnPsdDnA=igK7XzaTBrusPc3q5OEOQg==igK7XzaTBrusPc3q5OEOQg==1.0.110671523012111548248459fR9b/McBCzk=Deposit Fund698EURLuisTurinTurinVenis13212TF990303274103325689667lg@gmail.comLuisTurinTurinVenis13212TF990303274103325689667lg@gmail.comLuisTurinTurinVenis13212TF990303274103325689667lg@gmail.comclient_deposithttp://localhost/feature/CD-716/gateways/certus_finance/paymenthttp://localhost/feature/CD-716/gateways/certus_finance/paymenthttp://localhost/feature/CD-716/gateways/certus_finance/payment
示例键是:-85e1d7a5e2d22e46
谁能告诉我为什么不一样??任何帮助将不胜感激。
解决方案
您的$input
和$key
值没有被编码。从curl_setopt()
手册页...
此参数可以作为urlencoded 字符串传递...或作为以字段名称作为键、字段数据作为值的数组传递
Postman 默认执行此操作。
为了避免手动编码字符串,只需使用数组方法
curl_setopt($ch, CURLOPT_POSTFIELDS, [
'input' => $input,
'key' => $key
]);
不过请注意这个警告......
注意:
将数组传递给CURLOPT_POSTFIELDS会将数据编码为multipart/form-data,而传递 URL 编码的字符串会将数据编码为application/x-www-form-urlencoded。
如果需要,为确保application/x-www-form-urlencoded
,您可以使用 构建编码字符串http_build_query()
,例如
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'input' => $input,
'key' => $key
]));
推荐阅读
- android - WorkManager - SystemForegroundService: Context.startForegroundService() 然后没有调用 Service.startForeground()
- javascript - jquery ajax 卡住了,在网络面板中显示“请求尚未完成”,尽管已经有响应头
- python-3.x - 使用 h5py 对具有大量重复的数据集进行有效压缩
- mysql - 在 WHERE 子句中替换非数字值和 MATCH
- sql - 如何向现有事实表添加列以及如何向现有事实表添加数据?
- java - 在 ArrayList 中查找重复项
- python-3.x - 试图访问预测掩码 Mask-RCNN 的位置或坐标
- google-apps-script - 停止脚本再次创建相同文件或/和覆盖现有文件
- rabbitmq - 在rabbit mq中配置铲子时访问目标虚拟主机被拒绝
- apache-kafka - 融合模式注册表划分后端存储Kafka主题