Erste vollständige Antwort Körper aus dem System.Net.WebRequest

Ich bin mit System.Net.WebRequest, um Informationen aus einigen API.
Wann bekomme ich eine Fehlermeldung, die Antwort enthält nur die grundlegenden HttpStatusCode und Nachricht, und nicht der ganze Fehler zurückgegeben.
Zum Vergleich, die gleiche post-Daten und Header in einem tool, zum Beispiel als POSTBOTE wird wieder die vollständige Fehlermeldung aus, dass die API.

Ich mich Fragen, ob es irgendeine Eigenschaft oder Art und Weise kann ich die komplette Fehlermeldung als Antwort??

Hier ist der code, den ich verwende:

public HttpStatusCode GetRestResponse(
    string verb,
    string requestUrl,
    string userName,
    string password,
    out string receiveContent,
    string postContent = null)
{
    var request = (HttpWebRequest)WebRequest.Create(requestUrl);
    request.Method = verb;

    if (!string.IsNullOrEmpty(userName))
    {
        string authInfo = string.Format("{0}:{1}", userName, password);
        authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
        request.Headers.Add("Authorization", "Basic " + authInfo);
    }

    if (!string.IsNullOrEmpty(postContent))
    {
        byte[] byteArray = Encoding.UTF8.GetBytes(postContent);
        request.ContentType = "application/json; charset=utf-8";
        request.ContentLength = byteArray.Length;
        var dataStream = request.GetRequestStream();
        dataStream.Write(byteArray, 0, byteArray.Length);
        dataStream.Close();
    }

    try
    {
        using (WebResponse response = request.GetResponse())
        {
            var responseStream = response.GetResponseStream();
            if (responseStream != null)
            {
                var reader = new StreamReader(responseStream);
                receiveContent = reader.ReadToEnd();
                reader.Close();

                return ((HttpWebResponse) response).StatusCode;
            }
        }
    }
    catch (Exception ex)
    {
        receiveContent = string.Format("{0}\n{1}\nposted content = \n{2}", ex, ex.Message, postContent);
        return HttpStatusCode.BadRequest;
    }

    receiveContent = null;
    return 0;
}

Wenn ich generieren einer Anforderung, stellt mich mit einer Fehlermeldung, die ich bekomme im die Fehlermeldung: The remote server returned an error: (400) Bad Request. und keine InnerException, und nichts anderes kann ich profitieren von der aus die Ausnahme.

[Antwort] @Rene spitz in die richtige Richtung und die richtige Antwort Körper erworben werden können, wie diese:

var reader = new StreamReader(ex.Response.GetResponseStream());
var content = reader.ReadToEnd();

InformationsquelleAutor AlexD | 2015-08-23

Schreibe einen Kommentar