POST和OkHttp3

时间:2016-01-25 17:09:09

标签: android okhttp3

我在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页。

如果我对同一个网址做了GET响应,我会得到一个正确的回复。但是,当我向请求添加.post(postBody)时,它会立即显示404。

此API的文档位于: http://api.challonge.com/v1/documents/participants/create

1 个答案:

答案 0 :(得分:2)

我认为您只是使用了错误的网址。您访问的网址"https://api.challonge.com/v1/tournaments/"+EVENT_ID+".json"是检索单个锦标赛的网址,如here所示。此链接旨在接收GET请求。

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