代理设置类似于Fiddler

时间:2014-08-05 12:43:49

标签: c# proxy httpwebrequest fiddler

我有一个查询服务器的代码

    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正在运行并且选中此选项enter image description here,则所有查询都会成功完成。 当fiddler正在运行时,请求代理看起来像 enter image description here

和默认的系统代理设置类似于

enter image description here

我的问题是:如何以编程方式模拟此设置?我做了很多尝试手动设置请求代理,但没有结果。

1 个答案:

答案 0 :(得分:0)

拥有代理集不是修复代码的原因。

为什么要关闭requeststreamstream两次?您是手动执行此操作,还是通过using语句执行此操作?

为什么try没有catch