web-dev-qa-db-ja.com

Fiddlerと基本認証を使用してRESTful Web APIにアクセスする

問題なく動作するWebAPIがあります。ローカルでテストし、サーバーに展開し、IISでこのサービスを構成して基本認証を使用しました。私は自分のサービスを閲覧することができ、私が期待する認証チャレンジを受け取り、すべてがうまくいきます!今、私はこれをテストするためにFiddlerを使用したいのですが、特定のURLに対してPOSTを作成しましたが、401(Unauthorized)エラーが発生しました。そこで、リクエストヘッダーにbase64文字列を追加することにしましたが、500エラーが発生しています。

私が知りたいのは、リクエストヘッダーが正しいように見えますか?私は明らかに、認証チャレンジのusername:passwordという形式を含むホストとbase64文字列を難読化するつもりです。

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

FiddlerにはBase64を実行するツールがあります。文字列username:passwordを作成し、[ツール]-> [TextWizard]に移動して、ユーザー名とパスワードのコンボを入力し、ToBase64を選択します。これをAuthorizationヘッダーにコピーして貼り付ければ、準備完了です。

139
AlexGad

AlexGadは正しい。 ToBase64エンコードが作成されたら、リクエストの作成中にヘッダーの下に次の行を追加します。

Authorization: Basic [encoded_value]

リクエストを実行します、それは動作するはずです! :)

22

Fiddlerの新しいバージョン(v4.6.20172.31233でテスト済み)は、必要なAuthorizationヘッダーを作成して追加します<自動的に Composerでユーザー名とパスワードを指定した場合次のようなURLフィールド:

https://SomeUser:[email protected]

実行すると、これはURLからそれを取り除き、次のようなHTTPヘッダーに変わります。

Authorization: Basic U29tZVVzZXI6U29tZVBhc3M=
10
Nick Jones

私はこれが古い投稿であることを知っていますが、最初にこれを行う方法を見ていたとき、私はこの投稿に出会い、それが答えであることを知っていましたが、資格情報をthe睡状態で区切る必要があるなどのことはまだ知りませんでした。 JSONのPOSTのためにまとめたFiddlerのメモがここにいる人の助けになるかもしれません。

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}]
7
Caverman