我不是C#中的「尖銳」。不過,我需要這段代碼工作。我嘗試了不同的東西,沒有任何工作。例外情況正在被記錄,它只會錯過響應的主體。意味着它只記錄標題。C#讀取響應的主體
我怎樣才能得到身體。以下是我的。 「messageFromServer」是我試圖用於記錄正文的地方(我在這裏找到它:https://stackoverflow.com/questions/11828843/webexception-how-to-get-whole-response-with-a-body#=)。
甚至嘗試使用這裏提出的:C# - Getting the response body from a 403 error。
catch (WebException ex)
{
var resp = (HttpWebResponse)ex.Response;
Console.WriteLine("The transaction failed. Please see the logfile for full errorlog");
File.AppendAllText("log_createtrxns.txt", "\r\nBOL\r\nDate" + headerDate + "\r\n Server body" + ex.Response + "\r\nAmount: " + decimalAmount + "\r\nData:" + ex.Data + "\r\nException: " + ex.Message + "\r\nSource: " + ex.Source + "\r\nStacktrace: " + ex.StackTrace + "\r\nEOL");
}
這只是給了我這個在我的日誌文件:
服務器bodySystem.Net.HttpWebResponse
很抱歉,但我根本不明白它是如何應共同努力。
try
{
response = (HttpWebResponse)httpWebRequest.GetResponse();
foreach (string headerName in response.Headers)
{
//Console.WriteLine(headerName + ": " + response.Headers[headerName]);
}
var resp = new StreamReader(response.GetResponseStream()).ReadToEnd();
var messageFromServer = resp;
Stream receiveStream = response.GetResponseStream();
StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);
string result = readStream.ReadToEnd();
Console.WriteLine(result);
statusCode = (int) response.StatusCode;
if (statusCode == 201)
{
String location = response.Headers["Location"];
transId = Convert.ToInt32(location.Substring(location.LastIndexOf("/") + 1));
Console.WriteLine("Transaction ID: " + transId);
}
}
catch (Exception e)
{
Console.WriteLine("The transaction failed. Please see the logfile for full errorlog");
File.AppendAllText("log_createtrxns.txt", "\r\nBOL\r\nDate" + headerDate + "\r\n Server body" + messageFromServer + "\r\nAmount: " + decimalAmount + "\r\nData:" + e.Data + transId + "\r\nException: " + e.Message + "\r\nSource: " + e.Source + "\r\nStacktrace: " + e.StackTrace + "\r\nEOL");
}
運行代碼段是JavaScript和不爲C#代碼。 –
@Rahul。你是對的,現在修好了。 – Kwire