позволяет принимают этот 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();
Но я все еще не могу выяснить, как отправить его по почте
Вызов HttpURLConnection.setRequestMethod("POST")
и HttpURLConnection.setDoOutput(true);
На самом деле нужен только последний, поскольку POST становится методом по умолчанию.
Поскольку некоторые классы в исходном ответе устарели в новой версии 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/
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());