У меня есть метод, который делает POST, как показано ниже.
var response = await client.PostAsJsonAsync(url, entity); if (response.IsSuccessStatusCode) { // read the response as strongly typed object return await response.Content.ReadAsAsync(); }
Мой вопрос в том, как я могу получить фактический JSON, который был отправлен из объекта сущности. Я хотел бы зарегистрировать JSON, который получает POSTED, поэтому было бы неплохо, если бы я не сделал сериализацию json самостоятельно.
LoggingHandler перехватывает запрос, прежде чем он HttpClientHandler к HttpClientHandler который, наконец, записывает на провод.
Расширение PostAsJsonAsync внутренне создает ObjectContent и когда в ReadAsStringAsync() , он заставляет форматировать внутри ObjectContent сериализовать объект, и именно по этой причине вы видите контент в json.
Чтобы настроить прослушиватель System.Net для вывода на консоль и файл журнала, добавьте в конфигурационный файл сборки следующее:
Трассировка сети также доступна для следующих объектов (см. Статью о msdn )
System.Net.Sockets Некоторые общедоступные методы classов Socket, TcpListener, TcpClient и Dns
System.Net Некоторые общедоступные методы classов HttpWebRequest, HttpWebResponse, FtpWebRequest и FtpWebResponse, а также отладочная информация SSL (недопустимые сертификаты, список отсутствующих эмитентов и ошибки сертификата клиента).
System.Net.HttpListener Некоторые общедоступные методы classов HttpListener, HttpListenerRequest и HttpListenerResponse.
System.Net.Cache Некоторые частные и внутренние методы в System.Net.Cache.
System.Net.Http Некоторые общедоступные методы classов HttpClient, DelegatingHandler, HttpClientHandler, HttpMessageHandler, MessageProcessingHandler и WebRequestHandler.
System.Net.WebSockets.WebSocket Некоторые общедоступные методы classов ClientWebSocket и WebSocket.
Поместите следующие строки кода в файл конфигурации
Самое простое решение – использовать Wireshark и трассировать stream HTTP tcp.