php - 使用 PHP CURL 如何通过基本身份验证发布 json 数据
问题描述
我想使用带有基本身份验证的 PHP curl 发布数据。这是我的代码,但我无法使用 API 发布。但它正在与邮递员合作。
$urlp = "URL/sap/opu/odata/sap/ZOSA_UPLOAD_SRV/AccountOrderSet?sap-client=900";
$username = '*****';
$password = '********';
$ch = curl_init ();
curl_setopt($ch,CURLOPT_URL,$urlp);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_MUTE,1);
curl_setopt($ch,CURLOPT_USERPWD,"$username:$password");
curl_setopt($ch,CURLOPT_USERAGENT,"Proventum Proxy/1.0 (Linux)");
curl_setopt($ch, CURLOPT_TIMEOUT, 10); //times out after 10s
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($chp, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Accept: application/json',
'X-Requested-With: application/json')
);
if ($HTTP_REFERER) {
curl_setopt($ch,CURLOPT_REFERER, $HTTP_REFERER);
}
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$datap_string);
$result = curl_exec ($ch);
print $result;
curl_close($ch);
解决方案
在这里,添加到 HTTPHEADER 选项:
Authorization: Basic base64encode(username:password)
例如:
curl_setopt($chp, CURLOPT_HTTPHEADER, array(
'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=',
'Content-Type: application/json',
'Accept: application/json',
'X-Requested-With: application/json')
);
推荐阅读
- vega-lite - 如何对值进行排序并与鼠标悬停进行交互?
- google-api - 如何在 google ads api 中设置请求标头
- angular - 在 ssr Angular 应用程序中调用 API 时会话为空
- python - 将用户 first_name 保存为模型 django 的默认值
- python - 如何获得数独网格的 4 个点(数独求解器项目)
- reactjs - 如何缩小由draftjs生成的HTML?
- pandas - 是否可以使用生成器来加载和写出数据帧
- java - 不允许设置 spark.sql.warehouse.dir ,应该使用 Java 为跨会话使用静态设置
- c# - RE - 公开 JS 方法时 IE 崩溃(尤其是在 VM 上)
- node.js - 在 NestJs 项目中使用 i18n 库翻译类验证错误消息