Запрос на публикацию всегда пуст — Laravel 8

#php #laravel #post #request

Вопрос:

Я использую PHP 8.0.7, Laravel 8.41.0 и новичок в Laravel. Создание некоторых простых API. Никаких проблем с API-интерфейсами GET, но возникли проблемы с POST.

Объект $request всегда пуст, что бы я ни делал. Он просто возвращает [].

Я публикую ниже данные в Fiddler :

 User-Agent: Fiddler
Content-Type: application/json

{
"parent_id" : "1",
"process_no" : "20",
"process_name" : "Aux Electrical",
"level" : "4",
"priority_no" : "1"
}
 

Я попытался сбросить содержимое запроса $в api.php безрезультатно.

 Route::post('/processtree', function (Request $request){
    return $request->all();
});
 

Я пробовал всевозможные различные версии чтения объекта $request, снова не получилось. Все, что я получаю, это [].

Есть идеи, что здесь может быть не так?

Ответ №1:

Возможно, переформатируйте свой json в действительный ( : вместо = )

 {
"parent_id":"1",
"process_no":"20",
"process_name":"Aux Electrical",
"level":"4",
"priority_no":"1"
}
 

Комментарии:

1. Похоже, что $request->getcontent() решает проблему. Он принял «=». Однако я все еще не могу ничего получить с помощью $request->all(), даже с «:» в данных JSON.

2. @Ozguru $request->getcontent() возвращает необработанные данные, такие же, как php::input ( file_get_contents("php://input") ) Это подтверждает вам, что данные получены, но формат неверен для автоматического анализа