Multipartform не удается опубликовать с помощью OkHttpClient

#java #http #okhttp #http-status-code-503

#java #http #okhttp #http-status-code-503

Вопрос:

Я новичок в использовании OkHttpClient, и мне было интересно, может ли кто-нибудь мне помочь.

Чего я пытаюсь достичь?

Я просто пытаюсь ввести имена двух команд в форму на странице http://www.soccerbase.com/teams/head_to_head.sd а затем проверьте, успешно ли он загрузился или нет.

Проблема

Проблема, с которой я сталкиваюсь, заключается в том, что он возвращает этот результат:

java.io.IOException: неожиданный код: Ответ {протокол = http/ 1.1, код = 503, сообщение = ошибка чтения бэкэнда, 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();
}   

}

}
  

Комментарии:

1. 503 предполагают, что, вероятно, ваш URL-адрес сообщения неверен, вы уверены в этом?

2. Спасибо за ваш комментарий, однако теперь я решил использовать apache commons, и это работает намного лучше.