我有一个查询服务器的代码
try
{
using (var memoryStream = SerializeContentXml(query.Request))
{
var request = (HttpWebRequest)WebRequest.Create("some URL");
request.KeepAlive = false;
request.ContentType = "application/xml";
request.Method = "POST";
request.Headers["api_key"] = RequestHelper.ApiKey;
request.ContentLength = content.Length;
using (var requestStream = request.GetRequestStream())
{
requestStream.Write(content.ToArray(), 0, (int)content.Length);
requestStream.Close();
}
using (var response = await request.GetResponseAsync())
{
using (var stream = new StreamReader(response.GetResponseStream()))
{
var serializer = new XmlSerializer(query.Response.GetType());
var result = serializer.Deserialize(stream.BaseStream);
query.Response = (IBaseResponseModel)result;
}
}
}
}
catch (WebException ex)
{
if (ex.Status != WebExceptionStatus.Success)
{
var exceptionInfo = GetExceptionHierarchy(ex).Select(s => s.Message).ToArray();
new ErrorLogger().Log(exceptionInfo);
}
}
我的问题是: 某些查询会丢失内容,因此服务器会收到空内容。 如果fiddler正在运行并且选中此选项,则所有查询都会成功完成。 当fiddler正在运行时,请求代理看起来像
和默认的系统代理设置类似于
我的问题是:如何以编程方式模拟此设置?我做了很多尝试手动设置请求代理,但没有结果。
答案 0 :(得分:0)
拥有代理集不是修复代码的原因。
为什么要关闭requeststream
和stream
两次?您是手动执行此操作,还是通过using
语句执行此操作?
为什么try
没有catch
?