我有一个没有问题的WebAPI。我已在本地测试并部署到我的服务器并在IIS中配置此服务以使用基本身份验证。我能够浏览我的服务,我收到了我期望的身份验证挑战,并且所有工作都在游泳!现在我想使用Fiddler来测试这个并且我已经构建了一个特定URL的POST,并且我收到了401(未授权)错误。所以我决定在我的Request Header中添加一个base64字符串,现在我收到500错误。
我想知道的是,我的请求标题看起来是否正确?我显然要混淆我的Host和base64字符串,其中包含身份验证质询用户名:密码。
User-Agent: Fiddler
Host: xxx.xxx.xxx.xxx:xxxx
Content-Length: 185
Content-Type: text/json
Authorization: Basic jskadjfhlksadjhdflkjhiu9813ryiu34
答案 0 :(得分:136)
Fiddler有一个为你做Base64的工具。只需创建您的字符串:用户名:密码,然后转到工具 - > TextWizard并输入用户名密码组合并选择ToBase64。将其复制并粘贴到您的Authorization标题中,您应该很高兴。
答案 1 :(得分:19)
AlexGad是对的。创建ToBase64编码后,在编写请求时在标题下添加以下行:
Authorization: Basic [encoded_value]
现在执行请求,它应该工作! :)
答案 2 :(得分:9)
如果您在Composer URL中指定用户名和密码,则较新版本的Fiddler(我在v4.6.20172.31233中测试过)将自动为您创建并添加必要的Authorization
标题 像这样的领域:
https://SomeUser:SomePass@sitename
执行后,将其从URL中删除并变为HTTP标头,如:
Authorization: Basic U29tZVVzZXI6U29tZVBhc3M=
答案 3 :(得分:7)
我知道这是一篇较老的帖子,但是当我第一次看到如何做到这一点时,我发现了这篇帖子,并且知道这是答案,但我仍然不知道证件需要被昏迷分隔等等所以,以防万一这可能会帮助这里的人是我为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}]
答案 4 :(得分:0)
我希望这可以帮助像我这样的新手。
如果您使用的是GET,则在令牌周围使用 [] 无效。
以下操作无效:-
Authorization: Basic [MkgzczhaVnhZNG13d1FkTVJ2ZmZMQzFQQnhZRG5WdUVhbDNiVWs0ZldDdzo=]
以下工作:-
Authorization: Basic MkgzczhaVnhZNG13d1FkTVJ2ZmZMQzFQQnhZRG5WdUVhbDNiVWs0ZldDdzo=
答案 5 :(得分:-1)
我发现在Fiddler 4中,我所要做的就是检查规则菜单上的自动验证选项。