我在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
答案 0 :(得分:2)
我认为您只是使用了错误的网址。您访问的网址"https://api.challonge.com/v1/tournaments/"+EVENT_ID+".json"
是检索单个锦标赛的网址,如here所示。此链接旨在接收GET请求。
根据您提供的链接,您应该将代码更改为POST https://api.challonge.com/v1/tournaments/"+EVENT_ID+"/participants.json