method headers examples ejemplos downloaddata c# web-services webclient

c# - headers - Obtener errores de WebClient como cadena



webclient get c# (1)

Tienes que atrapar la excepción y leer la respuesta.

catch (WebException exception) { string responseText; var responseStream = exception.Response?.GetResponseStream(); if (responseStream != null) { using (var reader = new StreamReader(responseStream)) { responseText = reader.ReadToEnd(); } } }

Tengo una herramienta de diagnóstico que prueba un servicio web.

Quiero que la herramienta informe cuando haya problemas, por lo que he implementado un servicio con un problema con el contrato para probarlo.

Cuando lo busco, aparece una página con un mensaje muy descriptivo como:

Un ExceptionDetail, probablemente creado por IncludeExceptionDetailInFaults = true, cuyo valor es: System.InvalidOperationException: se lanzó una excepción en una llamada a una extensión de exportación WSDL:
System.ServiceModel.Description.DataContractSerializerOperationBehavior contract: DataContract para el tipo XXX no se puede agregar a DataContractSet ya que el tipo XXX con el mismo nombre de contrato de datos XXX en el espacio de nombre XXX ya está presente y los contratos no son equivalentes, etc.

Lo que quiero es poder llamar:

myErrorMsg = WebClient.DownloadString("MyBadService.svc");

y obtenga este útil mensaje de error como una cadena; sin embargo, recibo la siguiente WebException:

El servidor remoto devolvió un error: (500) Error interno del servidor.

¿Cómo puedo obtener el mismo mensaje de error que recibí en el navegador devuelto como una cadena, sin obtener una excepción?

Gracias.