2012-09-19 33 views
58

我有一个WebAPI工作没有问题。我已经在本地进行了测试并部署到我的服务器,并在IIS中配置了此服务以使用基本身份验证我能够浏览我的服务,并且我收到了我期望的身份验证挑战,并且所有的工作都能够顺利进行!现在我想使用Fiddler来测试这个,并且我已经构造了一个POST到一个特定的URL,并且我得到了401(未授权)错误。所以我决定在我的请求标题中添加一个base64字符串,现在我得到一个500错误。使用基本身份验证提琴手访问RESTful WebAPI

我想知道的是,我的请求标题看起来正确吗?我显然会混淆我的Host和base64字符串,其中包含身份验证质询的格式username:password。

User-Agent: Fiddler 
Host: xxx.xxx.xxx.xxx:xxxx 
Content-Length: 185 
Content-Type: text/json 
Authorization: Basic jskadjfhlksadjhdflkjhiu9813ryiu34 
+0

这是我发现基本身份验证base64格式的格式:http://en.wikipedia.org/wiki/Basic_access_authentication – brianhevans

+0

这是我找到base64编码器的地方:http://www.motobit.com/util /base64-decoder-encoder.asp – brianhevans

+2

我将列表中的授权移到了主机的下方,它起作用。我遵循维基中建议的格式,我认为我们有一切工作。 :-) – brianhevans

回答

127

Fiddler有一个工具可以为你做Base64。只需创建您的字符串:用户名:密码,然后转到工具 - >文本向导并输入用户名密码组合,然后选择ToBase64。复制并粘贴到你的授权标题,你应该很好去。

+0

谢谢,我会在下次尝试! – brianhevans

+0

但我怎么能发送编码的字符串以及我的JSON数据,而JSON结构是不同的发送数据。 –

15

AlexGad是对的。一旦ToBase64编码被创建,在撰写请求的标题下,添加下面一行:

Authorization: Basic [encoded_value]

现在执行的请求时,它应该工作! :)

5

我知道这是一个较旧的帖子,但当我第一次看到如何做到这一点时,我遇到了这篇文章,并知道这是答案,但我仍然不知道这些凭据需要的东西昏迷分开等。所以,以防万一这里可能有人在这里是我的小提琴手的笔记,我放在一起的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":"[email protected]","EmployeeNumber":"112233","FirstName":"JOHN","LastName":"DOE","PhoneNumber":null,"State":null,"UserName":"JDoe","ZipCode":null}] 
2

提琴手的新版本(我在v4.6.20172.31233测试)将创建并添加必要的Authorization头为你自动如果指定,像这样的作曲家URL字段的用户名和密码:

https://SomeUser:[email protected] 

在执行,此剥离出来的URL和变成HTTP头像:

Authorization: Basic U29tZVVzZXI6U29tZVBhc3M= 
0

我发现在小提琴手4中,我所要做的只是检查规则菜单上的自动验证选项。