Multipartform无法使用OkHttpClient发布

时间:2016-10-08 16:27:50

标签: java http okhttp http-status-code-503

我是使用OkHttpClient的新手,并且想知道是否有人可以帮助我。

我想要实现的目标是什么?

我只是想在页面http://www.soccerbase.com/teams/head_to_head.sd上的表单中输入两个团队名称,然后测试它是否已成功加载。

问题

我遇到的问题是它返回了这个结果:

java.io.IOException:意外代码:响应{protocol = http / 1.1,code = 503,message = backend read error,url = http://www.soccerbase.com/teams/head_to_head.sd}     在PredictResult.run(PredictResult.java:28)     在PredictResult.main(PredictResult.java:39)

我尝试使用OkHTTP示例代码使用的相同格式。我猜这个问题可能与我没有在HTTP请求中提供足够的数据有关。

代码:

import java.io.IOException;

import okhttp3.MultipartBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;

public class PredictResult {

private final OkHttpClient client = new OkHttpClient();

public void run() throws Exception{

    RequestBody body = new MultipartBody.Builder()
            .setType(MultipartBody.FORM)
            .addFormDataPart("team1_name", "Chelsea")
            .addFormDataPart("team2_name", "Manchester")
            .build();
    Request request = new Request.Builder()
            .url("http://www.soccerbase.com/teams/head_to_head.sd")
            .post(body)
            .build();

    try(Response response = client.newCall(request).execute()){

        if(!response.isSuccessful()) 
            throw new IOException("unexpected code: " + response);

        System.out.println(response.body().string());

    }

}

public static void main(String[] args) {

try {
    new PredictResult().run();
} catch (Exception e) {
    e.printStackTrace();
}   

}

}

0 个答案:

没有答案
相关问题