HttpWebRequest仅在fiddler运行时有效

我在使用以下代码时遇到了一些问题。 当Fiddler打开时它会正常运行,但当Fiddler没有运行时它会超时。

IWebProxy proxy = websiterequester.Proxy; websiterequester = (HttpWebRequest)WebRequest.Create("http://website.com/"); websiterequester.CookieContainer = cookieJar; websiterequester.Method = "GET"; websiterequester.Referer = "http://website.com/"; if (websiterequester.Proxy != null) { websiterequester.Proxy = null; } try { objStream1 = websiterequester.GetResponse().GetResponseStream(); } catch (WebException ex) { return "oops"; } objReader1 = new StreamReader(objStream1); string thiscamebacks = objReader1.ReadToEnd(); 

希望你们有个答案。 (我在SO上读了另一个post,但我的答案都没有对我有用)

谢谢!

尝试使用它来读取响应流:

  private byte[] ReadWebResponse(WebResponse response) { byte[] bytes = null; if(response == null) return null; using(Stream responseStream = response.GetResponseStream()) { using(BinaryReader readStream = new BinaryReader(responseStream)) { using(MemoryStream memoryStream = new MemoryStream()) { byte[] buffer = new byte[256]; int count; int totalBytes = 0; while((count = readStream.Read(buffer, 0, 256)) > 0) { memoryStream.Write(buffer, 0, count); totalBytes += count; } memoryStream.Position = 0; bytes = new byte[totalBytes]; memoryStream.Read(bytes, 0, totalBytes); } } } return bytes; } 

[编辑]我刚看到你ultimatley想要一个来自响应的字符串,所以用它来将字节数组转换为字符串:

 ///  /// Returns the byte array as a string, or null ///  public static string GetByteString(byte[] b) { if (b == null) return null; return Encoding.UTF8.GetString(b); }