c# - Fiddler 停止 StreamWriter 超时

标签 c# visual-studio api fiddler

我很困惑 - 如果可能的话寻求帮助......

我经常使用 Fiddler 来帮助我针对远程 API 编写代码,已经使用了很长时间,没有出现任何问题。快乐的日子!

但是,我遇到了一个我无法理解的问题......

我正在调用远程 API。当我在运行 fiddle 手的情况下调用电话时,它工作得很好。当我在没有运行 fiddler 的情况下进行相同的调用时,调用会超时吗?

这不仅仅发生在我的开发机器上。客户首先报告了问题。果然,当我要求他安装 fiddler 时,它也能在他那一端工作!

我只是不明白为什么只有当 Fiddler 未运行时调用此 API 才会失败,而当 fiddler 运行时调用此 API 才有效??

有人可以提出建议吗?

这是我的代码:

public static SalesForceModel.ClipIdResponse getClipId(string instance_url, string access_token, string clipTitle)
    {
        var httpWebRequest = (HttpWebRequest)WebRequest.Create(instance_url + "/services/data/v20.0/sobjects/vClip__c");
        httpWebRequest.Headers.Add("Authorization", "Bearer " + access_token);
        httpWebRequest.ContentType = "application/json";
        httpWebRequest.Method = "POST";

        using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
        {
            string json = "{\"Type__c\":\"PowerPoint\"," +
                          "\"Title__c\":\"" + clipTitle + "\"}";

            streamWriter.Write(json);
            streamWriter.Flush();
            streamWriter.Close();

            var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
            {
                var result = streamReader.ReadToEnd();
                return JsonConvert.DeserializeObject<SalesForceModel.ClipIdResponse>(result);
            }

        }

    }

最佳答案

通常此行为表明您未能正确关闭 GetResponseStream() 返回的流。函数,如 this blog postHTTPWebRequest 部分所述.

但是,您的using声明应该正确处置用过的StreamReader并且应该正确关闭底层流。

HTTPWebRequest的GetResponseStream()还有其他用途吗?您的应用程序中其他地方可能不会关闭流的函数?如果您显式调用httpResponse.Close(),行为是否会发生变化调用ReadToEnd()后方法?

关于c# - Fiddler 停止 StreamWriter 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19398554/

相关文章:

c# - asp.net JavascriptSerializer 可以将空值编码为空字符串吗?

ios - 寻找 iOS 的蓝牙 API 文档

java - 从java到python的API调用移植(Kostal Plenticore Inverter)

c# - 测试类型是否是属性?

c# - 在 Visual Studio 中制作属性代码片段

C# IIS 7.5 类未注册异常

VB.NET 智能感知 : Disable newline on ENTER autocomplete

c++ - 你如何告诉 Visual Studio 编译外部库?

windows - 在 Visual Studio 项目中,是否可以跨多个配置/平台设置用户宏?

java - 如何创建 "offline"Java MimeMessage?