我是wcf restful service的新手.我找不到问题,为什么我的wcf宁静服务给出"错误的请求".我使用.NET 4.0.
我的服务是:
[OperationContract(Name="Add")]
[WebInvoke(UriTemplate = "test/", Method = "POST",
ResponseFormat=WebMessageFormat.Json,
RequestFormat=WebMessageFormat.Json )]
public int Add(Number n1)
{
res = Convert.ToInt32(n1.Number1) + Convert.ToInt32(n1.Number2);
return res;
}
Run Code Online (Sandbox Code Playgroud)
数据是......
[Serializable]
public class Number
{
public int Number1 { get; set; }
public int Number2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
当我从fiddler打电话回来'HTTP/1.1 400 Bad Request'时
我的fiddler请求标题是:
User-Agent: Fiddler
Host: localhost:4217
Content-Type: application/json; charset=utf-8
Run Code Online (Sandbox Code Playgroud)
请求正文是:
{"Number1":"7","Number2":"7"}
Run Code Online (Sandbox Code Playgroud)
响应头是:
HTTP/1.1 400 Bad Request
Server: ASP.NET Development Server/10.0.0.0
Date: Sun, 14 Aug 2011 18:10:21 GMT
X-AspNet-Version: …Run Code Online (Sandbox Code Playgroud) 我开发了一个客户/服务器类型的应用程序.XML数据在客户端和服务器之间传递.我想模拟它如何在一个非常慢的网络上运行(即无线电@ 9.6kps).据我所知,Fiddler可用于模拟调制解调器速度模式.但无论我做什么,我都无法配置Fiddler接受来自客户端的流量并将其重定向到服务器.我也尝试了"反向代理".
Fiddler是否使用HTTP以外的协议?
我在localhost:8086上有一个java webapp,它发送和接收webservices到localhost:9080.fiddler只捕获端口8086上的流量.
如何让fiddler(或任何其他程序)捕获Web服务请求和响应
(我正在发送对象,我需要检查反序列化的xml soap请求)
Fiddler指定了将其用作反向代理的两个选项.
选项1:
可以配置Fiddler,以便发送到http://127.0.0.1:8888的任何流量自动发送到同一台计算机上的其他端口.要设置此配置:
启动REGEDIT
在HKCU\SOFTWARE\Microsoft\Fiddler2中创建一个名为ReverseProxyForPort的新DWORD.
将DWORD设置为您要将入站流量重新路由到的本地端口(通常为标准HTTP服务器的端口80)
重启Fiddler
浏览器浏览器到http://127.0.0.1:8888
选项2:
或者,您可以编写执行相同操作的规则.
假设您在名为WEBSERVER的计算机的端口80上运行网站.您正在使用Windows SmartPhone设备上的Internet Explorer Mobile Edition连接到>网站,您无法为其配置Web代理.您想要捕获来自手机的流量和服务器的响应.
在WEBSERVER计算机上启动Fiddler,在默认端口8888上运行.
单击工具| Fiddler选项,并确保选中"允许远程客户端连接"复选框.如果需要重启.
选择规则| 自定义规则.
在OnBeforeRequest处理程序中,添加一行新代码:if(oSession.host.toLowerCase()=="webserver:8888")oSession.host ="webserver:80";
在SmartPhone上,导航到http:// webserver:8888
这两个选项都涉及在同一台机器上使用Fiddler,但如果Fiddler和Web服务器在两台不同的机器上运行会怎样?例如,假设某个用户查询example.com并解析为1.2.3.4.我是否可以在1.2.3.4上运行Fiddler,以便在每次查询example.com时将流量转发到1.2.3.5?假设我使用选项2来配置Fiddler,我会将'webserver'设置为example,example.com,www.example.com或example.com的IP地址(假设www.example.com是example.com的别名)?
使用Fiddler时,会弹出一个警告对话框.
Fiddler has detected a protocol violation in session #14.
The Request's Host header did not match the URL's host component.
URL Host: proxy.music.pp.com
Header Host: 119.147.22.41
Run Code Online (Sandbox Code Playgroud)
并且它显示Fiddler将HTTP Header的主机更改为"proxy.music.pp.com",有没有办法禁用Fiddler更改它?
我正在尝试使用FiddlerCore实现系统内SSL服务器:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace fiddlerCoreTest
{
using System.IO;
using System.Threading;
using Fiddler;
class Program
{
static Proxy oSecureEndpoint;
static string sSecureEndpointHostname = "localhost";
static int iSecureEndpointPort = 7777;
static void Main(string[] args)
{
//var tt = Fiddler.CertMaker.GetRootCertificate().GetRawCertData();
//File.WriteAllBytes("root.crt",tt);
Fiddler.FiddlerApplication.BeforeRequest += delegate(Fiddler.Session oS)
{
oS.bBufferResponse = false;
if ((oS.hostname == sSecureEndpointHostname)&&oS.port==7777)
{
oS.utilCreateResponseAndBypassServer();
oS.oResponse.headers.HTTPResponseStatus = "200 Ok";
oS.oResponse["Content-Type"] = "text/html; charset=UTF-8";
oS.oResponse["Cache-Control"] = "private, max-age=0";
oS.utilSetResponseBody("<html><body>Request for httpS://" + sSecureEndpointHostname + ":" + …Run Code Online (Sandbox Code Playgroud) 我试图使用Fiddler捕获一些iOS应用流量,例如:Facebook,SnapChat,Gmail和Instagram.
Instagram没有使用https所以我可以获得所有流量并查看我发送的cookie但Fiddler无法解密其他三个应用程序.它只显示这样的事情:
找到了与SSLv3兼容的ClientHello握手.Fiddler提取了以下参数.版本:3.3(TLS/1.2)随机:54 3F 49 C4 20 08 09 BC A8 84 24 92 08 BF B4 38 39 C9 BB 1C B2 7B 95 6A 39 34 E7 AC FE 0F 62 67 SessionID:空扩展:server_name图. facebook.com elliptic_curves
谁能帮助我了解他们是如何做到这一点所以我可以使用相同的技术来保护我的应用程序.
我正在寻找使用Fiddler检查WFC客户端发送和接收的HTTP流量.为此,我已经通过Windows证书存储添加了Fiddler根证书.我的问题是,当我可能需要再次测试时,是否存在将此证书留在Windows存储中的风险?攻击可以利用它存在的事实吗?我完成测试后应该将其删除吗?
我有一个ASP.NET MVC网站,它正在调用Web API Web服务.
这些调用正在运行并返回200 OK - 两者都调用本地计算机上的Web服务和Web服务器上的Web服务.
我有Fiddler运行,但它没有看到这些调用 - 只调用MVC网站(反过来调用Web服务).
如何查看实际的Web服务调用?
这应该是正常的吗?特别是对基于Web的Web服务.
我已停止引用http://localhost并使用MACHINENAME - 正如某些SO帖子中所建议的那样.但这没有用.
我正在使用HttpClient来调用它:
using (var client = new HttpClient())
{
var byteArray = Encoding.ASCII.GetBytes(username + ":" + password);
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
client.BaseAddress = new Uri("http://MACHINENAME");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.PutAsJsonAsync("api/path", custImp);
}
Run Code Online (Sandbox Code Playgroud)
如何在Fiddler中查看Web服务调用?
我想用Fiddler Core连接到HTTP代理.
我正在使用oSession['X-OverrideGateway'] = "HOSTNAME:PORT"代码来做到这一点.
现在,代理需要身份验证.我在其他问题上看到了解决方案.它说:
oSession.oRequest["Proxy-Authorization"] = "Basic sOMeBASE64eNCODEdSTRING=";
Run Code Online (Sandbox Code Playgroud)
最后的哈希值是' username:password' 的Base64编码
我对此解决方法的疑问:
它会HTTP_PROXY_AUTHORIZATION为我的请求生成HTTP标头.不仅从提琴手到代理,还从代理到网络.
它不应该被代理删除吗?
是否有Fiddler的解决方法,所以我可以使用没有HTTP头的凭据连接HTTP代理?
我想用Fiddler Core.
更新:
我可以看到图像
如果代理身份验证标头位于带有状态代码的响应中,我只需要提供代理授权标头.它接缝好了.但是在小提琴核心中我怎样才能达到之前的反应?如果我只是简单地保存到一个字段变量中它将无法工作,因为流量的顺序不是
请求,响应,请求,响应等
但是我喜欢
请求,响应(407),请求,请求等
在第3个请求的第二个示例中,我们不应该发送代理授权标头,但是我们将,因为上一个响应是407.
有任何想法吗?