终端执行php转为post,我需要帮助使用PHP将Postman的成功请求转换为CURL命令(涉及HTTPS和POST)...

我尝试访问的端点需要HTTPS和基本身份验证.我的团队获得了一个API密钥,文档说明使用密钥作为用户名,并将密码留空.

以下是文档中的示例CURL请求:

curl -i -k -u '': -XPOST --data-urlencode data@/path/to/test/file.json "https://.vendor.org/api/v1/assessments/import"; echo ""

当我使用Chrome的Postman扩展程序执行以下操作时,我从服务器获得了成功的响应:

我正在尝试使用PHP(XAMPP安装)在本地执行此操作.以下是服务器的响应,说用户名/密码不正确:

function curlPost($url, $headers, $username, $password, $data) {

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_CAINFO, 'certificate.pem');

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

curl_setopt($ch, CURLOPT_HEADER, true);

curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);

curl_setopt($ch, CURLOPT_TIMEOUT, 30);

curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

print_r(curl_exec($ch));

// print_r(curl_getinfo($ch));

// print_r(curl_error($ch));

curl_close($ch);

}

$data = '{"key":"value", "key":"value"}';

curlPost('https://domain.com/api/data', ['Content-Type: application/xml'], 'api_key', '', $data);

{"success":false,"errors":["Email\/Username or password incorrect. Please try again."],"warnings":[],"info":[],"meta":[],"results":[]}

$data中使用的JSON字符串是从成功的Postman请求中复制并粘贴的.

certificate.pem与脚本位于同一文件夹中,并且已向每个人提供读/写权限.我已经尝试从我的机​​器导出我们供应商网站的特定证书以及在this post的最高响应中链接的CA捆绑包.我能够使用它通过PHP / CURL成功访问供应商的api-key-test端点.

我对此很陌生.你介意帮助我绕过我所缺少的东西吗?虽然我已经复制并粘贴了很多,但功能基本上都是我自己的.标题的参数将用于其他内容.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值