如何解决如何将对象传递给 http 客户端请求?
我尝试使用 CURL
发出 HTTP 请求,如下所示:
$rawQuery = '{
"CUSTNAME" : "1970188","CURDATE":"2020-12-28T00:00:00+02:00","BOOKNUM":"Test BookNum","DETAILS":"Test Details"
}';
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,"https://somelink.co.de");
curl_setopt($ch,CURLOPT_HTTPAUTH,CURLAUTH_BASIC);
curl_setopt($ch,CURLOPT_USERPWD,"username:password");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_POST,CURLOPT_HTTPHEADER,array(
'Content-Type: application/json'
));
curl_setopt($ch,CURLOPT_POSTFIELDS,$rawQuery);
$curl_response = curl_exec($ch);
这个正在返回我的结果。但是当我尝试使用 Symfony HTTP Client 实现相同的功能时,我收到了 400 错误。
这是代码,我试过了。
$response = $this->client->request('POST',$url,[
'auth_basic' => [
'username','password'
],'headers' => [
'Accept' => 'application/json',],'json' => $rawQuery
]);
我不确定 Client
中缺少什么
有人可以帮我吗?
解决方法
您的原始查询不正确.. 这应该是一个 php 数组,当您在请求中使用 'json' 键时,Symfony 正在尝试 json_encode() 为您执行此操作。将您的 $rawQuery 重新格式化为
$rawQuery = [
"CUSTNAME" => "1970188","CURDATE" => "2020-12-28T00:00:00+02:00","BOOKNUM" => "Test BookNum","DETAILS" => "Test Details"
];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。