Отправка HTTP запроса POST в Java

позволяет принимают этот URL...

http://www.example.com/page.php?id=10            

(Здесь идентификатор должен быть отправлен в запросе POST),

Я хочу отправить id = 10 к серверу page.php, который принимает его в методе POST.

Как я могу сделать это из Java?

Я попробовал это:

URL aaa = new URL("http://www.example.com/page.php");
URLConnection ccc = aaa.openConnection();

Но я все еще не могу выяснить, как отправить его по почте

279
задан th3an0maly 4 September 2013 в 02:40
поделиться

3 ответа

Вызов HttpURLConnection.setRequestMethod("POST") и HttpURLConnection.setDoOutput(true); На самом деле нужен только последний, поскольку POST становится методом по умолчанию.

1
ответ дан 23 November 2019 в 02:02
поделиться

Обновленный ответ:

Поскольку некоторые классы в исходном ответе устарели в новой версии HTTP-компонентов Apache, я публикую это обновление.

Кстати, вы можете получить доступ к полной документации с дополнительными примерами здесь .

HttpClient httpclient = HttpClients.createDefault();
HttpPost httppost = new HttpPost("http://www.a-domain.com/foo/");

// Request parameters and other properties.
List<NameValuePair> params = new ArrayList<NameValuePair>(2);
params.add(new BasicNameValuePair("param-1", "12345"));
params.add(new BasicNameValuePair("param-2", "Hello!"));
httppost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));

//Execute and get the response.
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();

if (entity != null) {
    try (InputStream instream = entity.getContent()) {
        // do something useful
    }
}

Исходный ответ:

Я рекомендую использовать Apache HttpClient. его быстрее и проще реализовать.

HttpPost post = new HttpPost("http://jakarata.apache.org/");
NameValuePair[] data = {
    new NameValuePair("user", "joe"),
    new NameValuePair("password", "bloggs")
};
post.setRequestBody(data);
// execute method and handle any error responses.
...
InputStream in = post.getResponseBodyAsStream();
// handle response.

для получения дополнительной информации проверьте этот URL: http://hc.apache.org/

319
ответ дан 23 November 2019 в 02:02
поделиться
String rawData = "id=10";
String type = "application/x-www-form-urlencoded";
String encodedData = URLEncoder.encode( rawData, "UTF-8" ); 
URL u = new URL("http://www.example.com/page.php");
HttpURLConnection conn = (HttpURLConnection) u.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty( "Content-Type", type );
conn.setRequestProperty( "Content-Length", String.valueOf(encodedData.length()));
OutputStream os = conn.getOutputStream();
os.write(encodedData.getBytes());
98
ответ дан 23 November 2019 в 02:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: