-1

我在 Android 上使用 OkHttp3 将数据发布到 Challonge API 时遇到问题……这是我的代码的要点:

OkHttpClient client = new OkHttpClient();

HttpUrl.Builder urlBuilder = new HttpUrl.Builder();
urlBuilder = HttpUrl.parse("https://api.challonge.com/v1/tournaments/"+EVENT_ID+".json")
    .newBuilder();

RequestBody postBody = new FormBody.Builder()
    .add("_method", "post")
    .add("api_key", API_KEY)
    .add("participant[name]", name.getText().toString())
    .add("participant[misc]", forum_id.getText().toString())
    .build();

Request request = new Request.Builder()
    .url(urlBuilder.build().toString())
    .post(postBody)
    .build();

Response response = client.newCall(request).execute();

无论我做什么,得到的响应都是 404 页面。

如果我对同一个 URL 进行 GET 响应,我会得到正确的响应。但是,当我添加.post(postBody)到请求中时,它立即出现 404。

Challonge API 的文档在这里: http ://api.challonge.com/v1/documents/participants/create

4

1 回答 1

2

在我看来,您只是使用了错误的 URL。您在那里获得"https://api.challonge.com/v1/tournaments/"+EVENT_ID+".json"的 URL 是用于检索单个锦标赛的 URL,如此处所示。此链接旨在接收 GET 请求。

根据您提供的链接,您应该将代码更改为 POST 到https://api.challonge.com/v1/tournaments/"+EVENT_ID+"/participants.json

于 2016-01-25T17:37:41.867 回答