【问题标题】:Proxy settings similar to Fiddler类似于 Fiddler 的代理设置
【发布时间】:2014-08-05 12:43:49
【问题描述】:

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

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

默认系统代理设置看起来像

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

【问题讨论】:

    标签: c# proxy httpwebrequest fiddler


    【解决方案1】:

    拥有代理集并不能修复您的代码。

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

    为什么try 没有catch

    【讨论】:

    • 我删除了不必要的调用。
    • 请使用您正在使用的实际代码更新您的问题。当前代码没有编译并包含未定义的变量(例如content
    • 感谢您的回复。我无法向您展示整个代码,因为它已被禁止。这就是为什么我在没有我自己的内在逻辑的情况下向您展示了代码的基本部分。但我认为,我的代码是正确的。它已经工作了1年。问题最近出现了。我很兴奋,当 fiddler 打开并选中“在启动时充当系统代理”选项时,代码运行良好。为什么会这样?有什么想法吗?
    • 如果您无法发布遇到问题的代码,将很难获得帮助。
    • 我的代码是我们工作的大型系统的一部分。我不能让你访问我们的系统 :(。“content”变量是 xml 可序列化对象。它的大小从 0.1 到 10 kB 不等。
    猜你喜欢
    • 1970-01-01
    • 2010-11-12
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多