CoreServer、便利に使わせてもらっています。
CoreServerは API でサーバの操作ができるので、ちょっと試してみよう…と思ってまずは、基本的な、ユーザ情報を取得するリクエストを投げてみました。
curl -d "account=***" -d "server_name=***" -d "api_secret_key=***" -X POST https://api.coreserver.jp/v1/user/info
…
…(´・ω・`)いきなり反応が帰ってこない。
自分の開発環境(Linux)で実行していたのですが、問題の切り分けのために、主環境(Windows)で実行してみたところ…普通に成功しました(´・ω・`)???
これは腰を据えて調査…ということで、-v オプションを付けて実行してみました。
Using Stream ID: 1 (easy handle ***)
POST /v1/user/info HTTP/2
Host: api.coreserver.jp
User-Agent: curl/7.61.1
Accept: /
Content-Length: 91
Content-Type: application/x-www-form-urlencoded
We are completely uploaded and fine
Connection state changed (MAX_CONCURRENT_STREAMS == 128)!
REFUSED_STREAM, retrying a fresh connect
Connection died, retrying a fresh connect
Closing connection 140
あらま、なんか失敗している…。「HTTP/2」という気になる文字列が・・・・。これはもしかして…?
curl --http1.1 -d "account=***" -d "server_name=***" -d "api_secret_key=***" -X POST https://api.coreserver.jp/v1/user/info
http1.1 を使うオプションを指定したところ…反応帰ってきました!
結局、原因はhttp2をCoreServer(のAPIエントリポイント)側が受け付けていないのに、http2で喋りかけたことに合ったようです。
Windows環境のcurlは、http1.1 で喋りかけていたので、問題なく動いていました。
真の問題がどこにあるのか、まだわかりませんが、まずは一旦解決…!
コメント
[…] curl で CoreServer の API を叩いてみたら応答が何も帰ってこなかった件 […]