Use the following code to send Http Post request to any URL from Java.
{
public HttpURLConnection getHTTPConnection(String sendUrl)
{
URL url = null;
HttpURLConnection urlConn = null;
try
{
url = new URL(sendUrl);
urlConn = (HttpURLConnection) url.openConnection();
urlConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
urlConn.addRequestProperty("User-Agent", "TDD");
urlConn.setUseCaches(false);
urlConn.setReadTimeout(5000);
urlConn.setConnectTimeout(5000);
urlConn.setDoOutput(true);
urlConn.setDoInput(true);
}
catch (MalformedURLException e)
{
System.out.println("MalformedURLException -> " + e.getMessage());
e.printStackTrace();
}
catch (IOException e)
{
System.out.println("IOException -> " + e.getMessage());
e.printStackTrace();
}
catch (Exception e)
{
System.out.println("Exception -> " + e.getMessage());
e.printStackTrace();
}
return urlConn;
}
private void performHttpOperation(HttpURLConnection urlConn, String content)
{
try
{
urlConn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(urlConn.getOutputStream());
wr.write(content);
wr.flush();
wr.close();
int responseCode = urlConn.getResponseCode();
String responseMessage = urlConn.getResponseMessage();
String str = null;
if (responseCode == 200)
{
DataInputStream input = new DataInputStream(urlConn.getInputStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
String line;
while ((line = reader.readLine()) != null)
{
System.out.println(" " + line);
}
input.close();
}
if (responseCode == 200)
{
System.out.println("HTTPCode -> " + responseCode);
System.out.println(" HTTPMessage -> " + responseMessage);
}
else
{
Map<String, List<String>> headerMap = urlConn.getHeaderFields();
Set<String> keys = headerMap.keySet();
for (String key : keys)
{
System.out.println("header key -> " + key + " value -> " + headerMap.get(key));
}
DataInputStream input = new DataInputStream(urlConn.getErrorStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
String line;
while ((line = reader.readLine()) != null)
{
System.out.println(" " + line);
}
input.close();
System.out.println("HTTPCode -> " + responseCode);
System.out.println(" HTTPMessage -> " + responseMessage);
}
}
catch (Exception e)
{
System.out.println("Exception Message -> " + e.getMessage());
e.printStackTrace();
}
}
public void sendHttpPostRequest()
{
try
{
String content = URLEncoder.encode("<key>", "UTF-8") + "=" + URLEncoder.encode("<value>", "UTF-8") + "&"
+ URLEncoder.encode("<key1>", "UTF-8") + "=" + URLEncoder.encode("<value1>", "UTF-8");
String url = "http://techdive.in/";
HttpURLConnection urlConn = getHTTPConnection(url);
performHttpOperation(urlConn, content);
}
catch (Exception e)
{
System.out.println("Exception Message -> " + e.getMessage());
e.printStackTrace();
}
}
}