首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FiddlerCore生成的http错误

FiddlerCore生成的http错误
EN

Stack Overflow用户
提问于 2014-01-30 13:22:53
回答 1查看 987关注 0票数 0

我使用FiddlerCore作为代理框架。

当我在一个不存在的站点(如http://asdasd)上冲浪时,我会得到一个为dns查找失败- [Fiddler] DNS lookup for "asdasd" failed. No such host is known而生成的网页。

我想让它呈现通常的浏览器错误,有可能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-30 22:28:48

首先要理解的是,“常见浏览器错误”一词具有误导性,因为浏览器中有两种情况。

  1. 用户直接连接到web。
  2. 用户支持任何类型的代理(例如Fiddler、Squid等)。

如果用户直接连接到web,则当DNS查找或连接失败时,浏览器本身会生成各种错误页面。

如果浏览器位于代理后面,则代理必须生成错误页并将其返回给客户端。如果需要,它可以尝试模仿浏览器的错误页面,但这将要求每个客户端都有不同的逻辑。

但是,您可以使用您自己选择的一个覆盖FiddlerCore的默认错误响应。

首先,附上一名代表:

FiddlerApplication.BeforeReturningError += FiddlerApplication_BeforeReturningError;

然后,添加代码以生成新的错误响应:

代码语言:javascript
复制
private void FiddlerApplication_BeforeReturningError(Session oSession) {
 if (oSession.bHasResponse) { 
  string sTitle = "Unable to load page";
  string sOriginalMessage = oSession.GetResponseBodyAsString().Trim().Replace("[Fiddler] ", String.Empty);
  oSession.oResponse["Content-Type"] = "text/html; charset=utf-8";
  oSession.oResponse["Cache-Control"] = "max-age=0, must-revalidate";
  string sEnhancedError = 
    String.Format("<!doctype html><html><head><title>{0}</title>\r\n<style>" +
    "body {{ background-color: #CCDDDD; font-family: sans-serif }}\r\npre {{ max-width:600px; white-space:pre-wrap;}}\r\n" +
    "</style></head>\r\n<body><h1>MyProxy - Page Unavailable</h1>The specified resource could not be loaded.<br /><pre>{1}</pre></body></html>", sTitle, sOriginalMessage);

    oSession.utilSetResponseBody(sEnhancedError);
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21457745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档