1

https://api.github.com/users/usernameに送信された GET 要求は、コマンド ラインおよび URL#text から機能しますが、HTTPBuilder を使用すると失敗します。

コード:

new HTTPBuilder('https://api.github.com').get(path: '/users/xan', contentType: JSON) // fails

"https://api.github.com/users/xan".toURL().text // works

コマンドラインで:

# works:
$ curl https://api.github.com/users/xan

スポックテストもこの要点で利用できます

なんで?

4

2 に答える 2

2

最終的にわかったのは、User-Agent ヘッダーがない場合、GitHub はアクセスを拒否するということです。

これは機能します:

def http = new HTTPBuilder('https://api.github.com')
def response = http.get(path: '/users/qmetric',
                        headers: [(USER_AGENT): "Apache HTTPClient"])
于 2013-06-04T15:50:59.073 に答える