这里是我用来POST到REST风格的web服务中的代码。我的问题是最后一行。 例如,我的服务器可以使用不同的消息和相同的代码进行回复。 现在,除非我得到200好,我只是在最后一行得到例外。从http调用得到正确的响应,不是例外
我想更好地访问响应头等,无论我得到什么代码。这怎么可能?
var request = WebRequest.Create(Options.DitatServerUri + Options.DitatAccountId + "/integration/trip") as HttpWebRequest;
if (request == null) return false;
request.ContentType = "application/json";
request.Headers.Add(HttpRequestHeader.Authorization, "Basic " + Convert.ToBase64String(Encoding.UTF8.GetBytes(Options.DitatLoginName + ":" + Options.DitatPassword)));
request.Method = "POST";
var serializer = new JavaScriptSerializer();
var serializedData = serializer.Serialize(trip);
var bytes = Encoding.UTF8.GetBytes(serializedData);
request.ContentLength = bytes.Length;
var os = request.GetRequestStream();
os.Write(bytes, 0, bytes.Length);
os.Close();
var response = request.GetResponse();
例如:我得到了WebException“无效的操作”,但服务器实际发送错误说明的消息。
有什么异常?您是否阅读了[手册](http://msdn.microsoft.com/zh-cn/library/system.net.httpwebrequest.getresponse.aspx)? – Jon
它返回'WebException'。足够好我猜 - 我得到HTTP代码,但我想读取标题等,我不抱怨其他例外。我只想在服务器实际响应时对响应有更多的控制 – katit
对于标题,请检查WebException.Response.Headers。 –