php - 发送数据到 api
问题描述
我需要向 api 发送用户名和密码,但是无法连接,我在邮递员中尝试过,很好,我需要发送这样的 json
我有这个代码(抱歉是我第一次尝试向 api 发送数据)
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'http://192.168.0.2/apilocation',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"username" : "oswaldo",
"password" : "1"
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_setopt($response, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($response, CURLOPT_RETURNTRANSFER, true);
curl_setopt($response, CURLOPT_RETURNTRANSFER, TRUE);
curl_close($curl);
var_dump($response);
但是返回错误:(,请帮忙
解决方案
我认为数据应该是这样的
CURLOPT_POSTFIELDS => json_encode(array("username" => "", "password" => ""))
您也可以尝试添加此标头
'accept: application/json',
也许是一种更清洁的方式
$ch = curl_init("http://192.168.0.2/apilocation");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(array("username" => "", "password" => "")));
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
推荐阅读
- mysql - MySQL:在表插入后 15 分钟安排事件
- javascript - 使用 javascript 覆盖 chrome 默认快捷方式
- mysql - MySQL 日期范围查询索引仅适用于有限范围
- reactjs - redux/react-testing-library 的初始状态对于下一个测试用例保持不变
- mongodb - 如何保持 Azure blob 存储和 Mongo db 之间的一致性
- sql-server-2008 - 如何在 SSMS 中连接到 Azure SQL DB
- javascript - 仅匹配正则表达式的一部分
- c - C 代码适用于本地设备,但不适用于 leetcode
- python - 将字符串附加到列表/字符串返回'None'或'AttributeError:'str'对象在python中没有属性'append''
- php - PHP:将带有单独行的数组作为值插入数据库