如何在 Laravel 中接收单引号 JSON



我正在编写一个API来使用来自另一个第三方应用程序(RapidPro(的数据。可悲的是,第三方应用程序发送其 JSon 括在单引号中,Laravel似乎不理解,当我返回$request对象时,我得到一个空数组 []。

有什么方法可以接受带有单引号的 JSon,因为我不可能更改第三方 API?

要解析的 JSon 是这个:

{
'contact': {
'uuid': 'e65ef92b-24ce-459b-a8fd-beb042330eb0',
'name': 'UserName',
'urn': 'tel: +12000000000'
},
'flow': {
'name': 'MyFlow',
'uuid': 'da5d6c42-a818-481b-b91c-e9622dafe8be'
},
'path': [],
'results': {},
'run': {
'uuid': '2a2f709f-d114-413c-a865-d960cea73981',
'created_on': '2018-05-23T19: 06: 03.308191+00: 00'
},
'input': {
'urn': 'tel: +12000000100',
'text': 'What I wanna say',
'attachments': []
}
}

我在接收 API 调用时使用以下路由,它工作并将其带到控制器:

Route::post('sms', 'UserController@sms')->name('sms.store');

此演示的 SMS 控制器让我们将其写入本地文件并发回结果,以便在进行演示调用的 Insomnia 中查看:

public function sms(Request $request)
{
Storage::put('sms.txt', $request);
return $request;
}

当我通过Insomnia将JSON发布到我的服务器时,当我使用双引号时,我得到一个空响应; 发布的JSON被很好地抛回去。

事实证明,在RapidPro调试器中,jSON使用单引号显示,但在实际的POST中,它使用双引号。我错的是AUTH。我必须为Laravel的基本一次身份验证包含一些标头。

最新更新