Apigility( Apigilityドキュメンテーション - > RESTサービスチュートリアル )を学び、POSTを送信しようとしていますcURLを介した基本認証による要求
$ curl -X POST -i -H "Content-Type: application/hal+json" -H "Authorization: Basic YXBpdXNlcjphcGlwd2Q=" http://apigilityhw.sandbox.loc/status
YXBpdXNlcjphcGlwd2Q=
は私の資格情報apiuser:apipwd
を持つbase 64エンコード文字列です。認証情報は/data/htpasswd
(apiuser:$apr1$3J4cyqEw$WKga3rQMkxvnevMuBaekg/
)に保存されます。
このようになります:
HTTP/1.1 401 Unauthorized
Server: nginx/1.4.7
Date: Mon, 22 Sep 2014 07:48:47 GMT
Content-Type: application/problem+json
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/5.5.12-1~dotdeb.1
WWW-Authenticate: Basic realm="api"
ここの間違いはどこにありますか?どうやって動かすの?
curl -u username:password http://
curl -u username http://
ドキュメンテーションページから:
- u、--user <user:password>
サーバー認証に使用するユーザー名とパスワードを指定してください。 -n、--netrc、および--netrc-optionalをオーバーライドします。
単にユーザー名を指定すると、curlはパスワードを要求します。
ユーザー名とパスワードは最初のコロンで区切られているため、このオプションではユーザー名にコロンを使用できません。パスワードはまだできます。
WindowsベースのサーバーでKerberos V 5を使用する場合は、サーバーがKerberosチケットを正常に取得するために、ユーザー名にWindowsドメイン名を含める必要があります。そうしないと、最初の認証ハンドシェイクが失敗する可能性があります。
NTLMを使用している場合、たとえばセットアップに単一のドメインとフォレストがある場合、ユーザー名はドメインなしでユーザー名として指定できます。
ドメイン名を指定するには、下位レベルログオン名またはUPN(ユーザープリンシパル名)形式を使用します。たとえば、EXAMPLE\userと[email protected]です。
Windows SSPI対応のcurlバイナリを使用してKerberos V5、Negotiate、NTLM、またはDigest認証を実行する場合は、このオプションでコロンを1つ指定することで、curlに環境からユーザー名とパスワードを選択させることができます。 。
このオプションを複数回使用すると、最後のオプションが使用されます。
http://curl.haxx.se/docs/manpage.html#-u
デフォルトなので、 --basic
フラグは必要ありません。
OAuthや他の認証サービスを使うとき、あなたはしばしば認可ヘッダの代わりにクエリ文字列であなたのアクセストークンを送ることができます。
GET https://www.example.com/v1/users/1?access_token=abcdefghijklmnopqrstuvwxyz1234567890ABCD
ヘッダとして
AUTH=$(echo -ne "$BASIC_AUTH_USER:$BASIC_AUTH_PASSWORD" | base64 --wrap 0)
curl \
--header "Content-Type: application/json" \
--header "Authorization: Basic $AUTH" \
--request POST \
--data '{"key1":"value1", "key2":"value2"}' \
https://example.com/