2012-09-19 26 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中,我所要做的只是檢查規則菜單上的自動驗證選項。