Tôi đã tạo một bộ điều khiển trong một mô-đun tùy chỉnh chấp nhận một BƯU KIỆN
yêu cầu.
Tôi có một thiết lập sao cho tôi nhận được một BƯU KIỆN
yêu cầu từ máy chủ ứng dụng của bên thứ ba tới API này. Nhưng BƯU KIỆN
yêu cầu có một Loại nội dung: "ứng dụng/x-www-form-urlencoding"
trong tiêu đề.
Và vì điều này, tôi gặp lỗi sau trong các thông báo tường trình gần đây:
Symfony\Component\HttpKernel\Exception\UnsupportedMediaTypeHttpException: Không tìm thấy tuyến nào phù hợp với "Content-Type: application/x-www-form-urlencoded" trong Drupal\Core\Routing\ContentTypeHeaderMatcher->filter() (dòng 49 của /var/ www/html/web/core/lib/Drupal/Core/Routing/ContentTypeHeaderMatcher.php).```
Khi tôi kiểm tra API bằng người đưa thư:
- nếu tôi sử dụng
Loại nội dung: "application/json"
trong tiêu đề, mã bên trong API được thực thi và tôi nhận được phản hồi chính xác.
- nếu tôi sử dụng
Loại nội dung: "ứng dụng/x-www-form-urlencoding"
, Tôi nhận được lỗi tương tự.
Tôi không thể định cấu hình máy chủ ứng dụng bên thứ ba để thay đổi Loại nội dung
. Vì vậy, tùy chọn duy nhất đối với tôi là định cấu hình API để chấp nhận BƯU KIỆN
yêu cầu với Loại nội dung: "ứng dụng/x-www-form-urlencoding"
. Làm thế nào tôi có thể làm điều đó?
Đã chỉnh sửa:
Lớp của tôi mở rộng lớp ResourceBase. Định nghĩa tuyến đường của bộ điều khiển. Ngoài ra tôi đang sử dụng drupal 8.
* @RestResource(
* id = "test_abc_callback",
* nhãn = @Translation("API tùy chỉnh để kiểm tra"),
* uri_paths = {
* "tạo" = "/api/v1/test_callback",
* }
* )