#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, и это работает намного лучше.