Разбор полезной нагрузки GitHub WebHook приводит к ошибке декодирования Json - PullRequest
0 голосов
/ 29 февраля 2020

При синтаксическом анализе полезной нагрузки, полученной от GitHub WebHook, при возникновении этой проблемы JSONDecodeError: Ожидаемое значение: строка 1, столбец 1 (символ 0)

полезная нагрузка выглядит как

payload=%7B%22action%22%3A%22created%22%2C%22issue%22%3A%7B%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FChaiBapchya%2Fincubator-mxnet%2Fissues%2F13%22%2C%22repository_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FChaiBapchya%2Fincubator-mxnet%22%2C%22labels_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FChaiBapchya%2Fincubator-mxnet%2Fissues%2F13%2Flabels%7B%2Fname%7D%22%2C%22comments_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FChaiBapchya%2Fincubator-mxnet%2Fissues%2F13%2Fcomments%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2FChaiBapchya%2Fincubator-mxnet%2Fissues%2F13%2Fevents%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2FChaiBapchya%2Fincubator-mxnet%2Fpull%2F13%22%2C%22id%22%3A57165580

Трассировка стека ошибок

File "/var/lang/lib/python3.7/json/__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "/var/lang/lib/python3.7/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/var/lang/lib/python3.7/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

1 Ответ

0 голосов
/ 29 февраля 2020

После тщательного изучения конфигурации GitHub WebHook и вывода полезной нагрузки произошло несоответствие.

GitHub WebHook был настроен на передачу запроса в content type : x-www-form-urlencoded. Кроме того, печать полезной нагрузки также выглядит как urlencoded, а не json.

Но моя вспомогательная функция в AWS Lambda, которая анализирует webhook, ожидала json.

Изменение webhook сработало updated GitHub WebHook

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...