HTTP POST-запросы в Java

По сути, я пытаюсь подключиться к API Pastebin с помощью созданной мной страницы PHP. Кажется, что параметры не вводятся. Вот мой код:

String urlParameters = "?api_dev_key=" + main.getKey() + "&api_user_name=" + username + "&api_user_password=" + password; URL url = new URL("http://pastebinclient.tk/server/login.php" + urlParameters);
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
connection.setRequestProperty("Content-Language", "en-US");
connection.setRequestProperty("Accept", "*/*");
connection.setRequestProperty("User-Agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Safari/537.36");

connection.setUseCaches(false);
connection.setDoOutput(true);

я использовал http://hurl.it с такими же параметрами и все работало нормально. На моей странице это настроено так, что, если не все параметры введены, он возвращает сообщение о том, что происходит, и это то, что происходит. Извините, что задаю вопрос, на который уже дан ответ, но ответы не помогли.

0

Решение

Вы на самом деле не отправляете параметры в теле вашего запроса POST. Вы отправляете их как параметры запроса в коде. В зависимости от того, как написан веб-сервис, он может принимать или не принимать параметры, отправленные как параметры запроса. Похоже, что в этом случае это не так. Ссылаться на Java — отправка параметров HTTP с помощью метода POST для примера того, как представить ваши параметры как часть тела POST.

0

Другие решения

Я рекомендую HTTP-запрос построен на Apache HTTP API.

private static final HttpRequest<?> HTTP_REQUEST =
HttpRequestBuilder.createPost("http://pastebinclient.tk/server/login.php")
.responseDeserializer(ResponseDeserializer.ignorableDeserializer())
.addDefaultHeader("Content-Type", "application/x-www-form-urlencoded") // I think there is no need
.addDefaultHeader("Content-Language", "en-US")
.addDefaultHeader("Accept", "*/*")
.addDefaultHeader("User-Agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Safari/537.36")
.build();

public void send(){
ResponseHandler<?> handler = HTTP_REQUEST.executeWithQuery(urlParameters);
int statusCode = handler.getStatucCode();
}
0