2

POST フックを bitbucket リポジトリに追加しようとしていますが、試行するたびに 404 の結果が得られます。

私がやっている:

payload = {'type': 'POST', 'URL': announce_post_hook}
content_type = {"Content-Type": "application/json"}
request_url = 'https://api.bitbucket.org/1.0/repositories/{repo_owner}/{repo_slug}/services/'                       
request_url = request_url.format(repo_owner=repo_owner, remote_url=remote_url)
requests.post(request_url, auth=(repo_user, repo_pass), data=json.dumps(payload), headers=content_type)

また、次の URL を使用してみました。

https://bitbucket.org/api/1.0/repositories/{repo_owner}/{repo_slug}/services/

APIのさまざまな部分にリストされているためです(たとえば、展開キーを設定するために、bitbucket.org/api/の代わりにapi.bitbucket.orgを使用しています)。

次のように、curlを使用して実行しようとすると:

curl -X POST -u user:pass https://api.bitbucket.org/1.0/repositories/repowner/reposlug/services/ --data "type=POST&URL=https://hooks.urladdress.com"

それならうまくいく。しかし、他の API 呼び出しのように python-requests を介して実行しようとすると失敗します...

何が起こっているのか誰にも分かりますか?リソースが見つからないと応答するだけですが、これは正しくないようです (curl を介して動作するため)。

非常によく似た問題でこの質問を見つけましたが、そこには答えがありません...

4

1 に答える 1

0

今後の参考のために、他の誰かが同じ問題を抱えている場合、明らかにこの特定のエンドポイントは json でエンコードされたデータを受け入れません。

したがって、リクエストは

requests.post(request_url, auth=(repo_user, repo_pass), data='type=POST&URL=hooks.url.com')
于 2015-04-16T18:39:45.160 に答える