【发布时间】:2019-03-27 14:32:58
【问题描述】:
我在 laravel 5.4 上使用 Ixudra\Curl 进行 http 请求 然后我想用 JSON 作为表单主体做 POST 请求。 当我使用 postman 时,它可以工作,这是我的代码:
$headers = array(
'Accept:application/json'
);
$req_response = Curl::to("http://apiv2.jne.co.id:10102/thecore/insert")
->withData($data)
->withHeaders($headers)
->withContentType('application/json')
->asJson()
->withResponseHeaders()
->returnResponseObject()
->post();
当我打印此代码时返回
{
"content": null,
"status": 415,
"contentType": "text/html; charset=UTF-8",
"headers": {
"Date": "Tue, 23 Oct 2018 11:04:11 GMT",
"Content-Type": "text/html; charset=UTF-8",
"Transfer-Encoding": "chunked",
"Connection": "keep-alive",
"Allow": "OPTIONS, POST",
"Max-Forwards": "20",
"Via": "1.0 oag02.domain (Gateway)",
"X-CorrelationID": "Id-2b00cf5bf1c8d929da1be213 0",
"X-ORACLE-DMS-ECID": "0005jT3HGX5DkZG5yzt1iW0003XF000I96",
"X-ORACLE-DMS-RID": "0:1"
}
}
查看标题 -> Content-Type 仍然使用 text/html 请求.. 有人有解决方案吗?我也在使用 curl_init ,当我使用没有 php (curl_init) 时成功但是,当我将代码复制到 laravel 时,请求返回到 x-www-urlencoded, 目标是,我想在 LARAVEL 上使用 JSON 作为数据进行 POST 谢谢。
【问题讨论】:
-
你试过 Guzzle 吗?
-
@madalinivascu 我是,结果还是一样
-
您收到的状态为 415,因此您的数据结构可能有问题,而不是标题
-
您的
Accept标头在冒号后需要一个空格。尝试通过删除withContentType()仅使用asJson(),因为asJson()无论如何都会设置Content-Type标头,并且$data必须是array。否则检查 api 的文档 -
@morph 我已修复接受空间,但我仍然得到相同的响应,而内容类型已删除
标签: php json laravel curl httprequest