使用带有基本身份验证的 Fiddler 访问 RESTful WebAPI

我有一个可以正常工作的 WebAPI。我已经在本地进行了测试,并将其部署到服务器上,并在 IIS 中将此服务配置为使用基本身份验证。我可以浏览我的服务,我收到的认证挑战,我期望和所有的工作顺利!现在我想使用 Fiddler 来测试这一点,我已经构建了一个 POST 到一个特定的 URL,我得到了一个401(未授权)错误。所以我决定在我的请求头中添加一个 base64字符串,现在我得到了一个500错误。

我想知道的是,我的请求头看起来正确吗?显然,我要混淆我的主机和 base64字符串,其中包含格式用户名: 密码的身份验证挑战。

User-Agent: Fiddler
Host: xxx.xxx.xxx.xxx:xxxx
Content-Length: 185
Content-Type: text/json
Authorization: Basic jskadjfhlksadjhdflkjhiu9813ryiu34
91880 次浏览

Fiddler 有一个工具可以为您完成 Base64。只需创建字符串: username: password,然后转到 Tools-> TextWizard,输入用户名密码组合并选择 ToBase64。复制并粘贴到您的授权头部,您应该可以很好地去。

AlexGad 是正确的。一旦创建了 ToBase64编码,在编写请求的头部下面添加以下代码行:

Authorization: Basic [encoded_value]

现在执行请求,它应该可以工作! :)

我知道这是一个较老的职位,但当我第一次看如何做到这一点,我无意中发现了这个职位,并知道这是答案,但我仍然不知道的事情,如需要证书昏迷分离等。所以,为了以防万一,这里有一些关于 Fiddler 的笔记,我把它们放在一起用于 JSON POST。

First you need to Base64 encode your "username:password"
• Go to Tools | Text Wizard | To Base64 in dropdown


Post a message in the Composer tab
• Change the type to POST in the dropdown.
• Put in the URL
• Add the following to the top header section.
○ Authorization: Basic ReplaceWithYourEncodedCredtials=
○ Content-Type: application/json; charset=utf-8
• Add some JSON content to the body
○ [{"Address1":null,"Address2":null,"BirthDate":"1967-10-06T00:00:00","City":null,"CompanyHireDate":"2011-06-03T00:00:00","EmailAddress":"myEmail@company.com","EmployeeNumber":"112233","FirstName":"JOHN","LastName":"DOE","PhoneNumber":null,"State":null,"UserName":"JDoe","ZipCode":null}]

新版本的 Fiddler (我在 v4.6.20172.31233中测试过)将为您创建和添加必要的 Authorization头文件,如果您在 Composer URL 字段中指定用户名和密码,如下所示:

https://SomeUser:SomePass@sitename

在执行时,这会将其从 URL 中删除,并转换为如下 HTTP 头:

Authorization: Basic U29tZVVzZXI6U29tZVBhc3M=

我发现在 Fiddler4中,我所要做的就是检查 Rules 菜单上的 AutomaticAuthenticate 选项。

我希望这对像我这样的新手有所帮助。

如果使用 GET,则在令牌周围使用 [ ]将不起作用。

以下方法不起作用:-

Authorization: Basic [MkgzczhaVnhZNG13d1FkTVJ2ZmZMQzFQQnhZRG5WdUVhbDNiVWs0ZldDdzo=]

以下工作:-

Authorization: Basic MkgzczhaVnhZNG13d1FkTVJ2ZmZMQzFQQnhZRG5WdUVhbDNiVWs0ZldDdzo=