在 Fiddler 中,如何在传递服务器响应时仅减慢特定请求的响应速度?
我知道我可以模拟所有请求的慢速 - 这不是我想要的。
使用具有特定规则的自动回复器迫使我选择回复内容。
如何在不修改响应的情况下使用“延迟”功能?这在 Fiddler 中可能吗?
我正在使用 Fiddler 的“FiddlerScript”来修改来自 Web 服务器的响应,以便我可以在我的应用程序中测试响应。
这是我的 OnBeforeResponse 函数:
static function OnBeforeResponse(oSession: Session) {
// This code was already here, leaving it
if (m_Hide304s && oSession.responseCode == 304) {
oSession["ui-hide"] = "true";
}
// Here is new code to modify server's response
if(oSession.HostnameIs("mydomain.com") && oSession.uriContains("config")) {
// Color this response, so we can spot it in Fiddler
oSession["ui-backcolor"] = "lime";
// Convert the request body into a string
var oBody = System.Text.Encoding.UTF8.GetString(oSession.responseBodyBytes);
var j: Fiddler.WebFormats.JSON.JSONParseResult;
// Convert the text into a …Run Code Online (Sandbox Code Playgroud) 我有这个原始标头数据,我用 fiddler 检查过
这是我用 fiddler 检查得到的原始标头数据
POST /devices/discover/ HTTP/1.1
Host: 192.168.1.40:3579
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0
Accept: application/json, text/plain, */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/json;charset=utf-8
Content-Length: 47
Origin: http://192.168.1.40
DNT: 1
Connection: keep-alive
Referer: http://192.168.1.40/
Run Code Online (Sandbox Code Playgroud)
当我在 fiddler 作曲家中执行它时,它可以工作,但是当我尝试将其转换为curl -X POST 命令时,什么也没有发生。
这是我用 fiddler 发送的原始数据
POST http://192.168.1.40:3579/devices/discover/ HTTP/1.1
Host: 192.168.1.40:3579
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0
Accept: application/json, text/plain, */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/json;charset=utf-8
Content-Length: 47
Origin: http://192.168.1.40
DNT: 1
Connection: …Run Code Online (Sandbox Code Playgroud) 我有一个表单,它将值发布到向导中的页面.当我在Iframe中加载此表单时,一切都在Firefox中工作正常,它将使我进入向导的第二步并维护我填写的值.当我在Internet Explorer中测试时,我没有到达第二步步骤,而不是它返回到向导的第一步,所有字段都是空白.当我在Fiddler中检查这个时,我发现当我在Firefox中将表格发布到Firefox中时,我会得到不同的响应.如何让这个适用于所有浏览器?我究竟做错了什么?
这是我从Fiddler那里得到的:
帖子:
Ressult Protocol Host URL Body Caching Content-Type Process Comments Custom
1 302 HTTP www.dmg.eu /brugman/budgetplanner/aanmelden.php 0 no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 19 Nov 1981 08:52:00 GMT text/html; charset=UTF-8 firefox:6116
Run Code Online (Sandbox Code Playgroud)
得到:
# Result Protocol Host URL Body Caching Content-Type Process Comments Custom
2 200 HTTP www.dmg.eu /brugman/budgetplanner/ 40.677 no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 19 Nov 1981 08:52:00 GMT text/html; charset=UTF-8 firefox:6116
Run Code Online (Sandbox Code Playgroud)
帖子:
Result Protocol Host URL Body Caching Content-Type Process Comments …Run Code Online (Sandbox Code Playgroud) 虽然Fiddler对我来说非常合适,但它似乎确实让浏览变得非常缓慢.在Fiddler运行的情况下,打开这个站点大约需要十秒钟.如果我关闭它,它会立即加载.
我想知道这是否与Fiddler的工作方式有关,或者如果有选项或设置我应该改变以加快速度.
我向以下人员发送请求时收到411错误:
接口:
[OperationContract]
[WebInvoke(Method = "POST",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "IncSMS")]
string IncSMS(int ID);
Run Code Online (Sandbox Code Playgroud)
方法:
public void IncSMS(int ID)
{
var business =
(from p in _db.Businesses
where p.BusinessID == ID
select p).FirstOrDefault();
business.SMSHits += 1;
_db.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以看到为什么我会得到错误?所有的get方法都有效,我只是不能让POST或PUT工作!
有任何想法吗???
干杯,
麦克风.
我在WCF上关注了这个视频系列并让演示工作.它涉及构建管理学生评估表单的WCF服务,并实现CRUD操作以对这些评估列表进行操作.我根据本指南稍微修改了我的代码,因此它会将JSON结果返回给浏览器或Fiddler请求.我的目标是通过在Fiddler中构建我自己的请求来弄清楚如何使用该服务,然后使用该格式从移动设备上的应用程序中使用该服务.
我在使用SubmitEvalFiddler 的方法(保存评估)时遇到了麻烦.调用有效,但所有字段Eval都为null(或默认),除了Id在服务本身中设置.
这是我的Eval声明(根据此问题使用属性而不是字段):
[DataContract]
public class Eval //Models an evaluation
{
[DataMember]
public string Id { get; set; }
[DataMember]
public string Submitter { get; set; }
[DataMember]
public string Comment { get; set; }
[DataMember]
public DateTime TimeSubmitted { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
以下是相关部分IEvalService:
[ServiceContract]
public interface IEvalService
{
...
[OperationContract]
[WebInvoke(RequestFormat=WebMessageFormat.Json,
ResponseFormat=WebMessageFormat.Json, UriTemplate = "eval")]
void SubmitEval(Eval eval);
} …Run Code Online (Sandbox Code Playgroud) 在.NET中,我正在调用一个休息服务并获得异常 - 500 Internal Server Error.
HttpWebResponse response = request.GetResponse() as HttpWebResponse
Run Code Online (Sandbox Code Playgroud)
当我在Fiddler中分析它时(在TextView中),我得到了很多关于导致错误的正确异常的细节.
在我的异常对象中,我无法在InnerException(它为null)或Response对象本身中获取此信息.
有任何想法吗?
当我使用参数orderid调用我的Soap ASMX服务时,它失败并说.有任何想法吗?
System.InvalidOperationException: Request format is invalid: text/xml; charset=utf-8.
at System.Web.Services.Protocols.HttpServerProtocol.ReadParameters()
at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()
Run Code Online (Sandbox Code Playgroud)
public class Service1:System.Web.Services.WebService {
Run Code Online (Sandbox Code Playgroud)[WebMethod(EnableSession=true)] [SoapDocumentMethod] public Order MyLiteralMethod([XmlElement("MyOrderID")] string orderId) { //logic } }
FIDDLER REQUEST HEADER
Host: localhost:49033
Content-Type: text/xml; charset=utf-8
Content-Length: 369
SOAPAction: "http://tempuri.org/MyLiteralMethod"
Run Code Online (Sandbox Code Playgroud)
FIDDLER请求身体
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<MyLiteralMethod xmlns="http://tempuri.org/">
<MyOrderID>sdasd</MyOrderID>
</MyLiteralMethod>
</soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)
进一步的发现 我能够从其他Web调试代理工具[STORM]调用服务并传递参数.我认为这是针对小提琴手的
问题已解决
看起来像fiddler .went into tools-> options-> https的问题.删除解密HTTPs流量..重新启动的fiddler.然后重新添加这些选项并重新启动.我不知道这个过程是否解决了这个问题,但我可以通过提琴手提出请求.
我一直在这样得到垃圾文本
?\b\0\0\0\0\0\0?\a`I?%&/m?{J?J??t?\b?`$?@??????iG#
Run Code Online (Sandbox Code Playgroud)
在我的html变量在这个函数的末尾.正如您所看到的,通过注释掉的代码,我尝试了两种插入Cookie的方法.
我是这样的HTTPwebRequest/Response方法的新手.但是从我在网上找到的所有内容中,我正确地设置了我的方法.如果可能的话,我会喜欢一些帮助.
此外,当使用Fiddler解码我的请求时,并非我的所有cookie都被发送.我的代码运行时,我只发送1 utma,1 utmb,1 utmc和1 utmz.但是,当我正常登录网站时,我会收到2个utma,1个utmb,2个utmc和2个utmz.
我觉得这是我连接问题的根源,但我不确定.
static void FillCookieJar()
{
Console.WriteLine("Filling cookie jar...\r\n");
try
{
string parameters = "SUPER LONG POST DATA found from TEXTVIEW in Fidler";
Uri target = new Uri("https://foo.bar.com/UserSignIn");
byte[] buffer = Encoding.ASCII.GetBytes(parameters);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(target);
//Cookie chipOne = new Cookie("__utma", "XXXXXXXXX.XXXXXXXXX.XXXXXXXXX.XXXXXXXXX.XXXXXXXXX.XX") { Domain = target.Host };
//Cookie chipTwo = new Cookie("__utma", "XXXXXXXXX.XXXXXXXXX.XXXXXXXXX.XXXXXXXXX.XXXXXXXXX.X") { Domain = target.Host };
//Cookie chipThree = new Cookie("__utmb", "XXXXXXXXX.X.XX.XXXXXXXXX") { Domain = target.Host };
//Cookie …Run Code Online (Sandbox Code Playgroud)