RESOLVIDO: internet - enviando valores pelo metodo POST

Aqui no GUJ tem um tutorial para lidar com o metodo GET, mas eu gostaria de saber como faço para metodo POT, pois o cgi que eu estou tentando acessar sempre acusa erro:
CGI Application Error
Only POST method supported by this program.

Meu codigo

public void enviarEmail(String emailD, String emailR, String pagina, String titulo, String remetente, String msg){
String urlStr = “http://www.xxx.com.br/cgi-bin/mailto/comments.exe/cgi.txt”;

    Properties parametros = new Properties();
    parametros.setProperty("mailto",emailD);
    parametros.setProperty("email",emailR);
    parametros.setProperty("nextpage",pagina);
    parametros.setProperty("subj",titulo);
    parametros.setProperty("Nome",remetente);
    parametros.setProperty("Mensagem",msg);
    
    // o iterador, para criar a URL
    Iterator i = parametros.keySet().iterator();
    // o contador
    int counter = 0;

    // enquanto ainda existir parametros
    while (i.hasNext()) {
       // pega o nome
      String name = (String) i.next();
      // pega o valor
      String value = parametros.getProperty(name);

      // adiciona com um conector (? ou &)
      // o primeiro é ?, depois são &
      urlStr += (++counter == 1 ? "?" : "&")
         + name
         + "="
         + value;
   } 
        
   
   // cria o objeto url
   try{
      URL url = new URL(urlStr);
       HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
      // seta o metodo
       connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
       
       // seta a variavel para ler o resultado
       connection.setDoInput(false);
       connection.setDoOutput(true); 
   }catch(Exception e){
    e.printStackTrace();
   }
    
   

}

oi

resolvi o problema

try {
// Construct data
String data = URLEncoder.encode(“key1”, “UTF-8”) + “=” + URLEncoder.encode(“value1”, “UTF-8”);
data += “&” + URLEncoder.encode(“key2”, “UTF-8”) + “=” + URLEncoder.encode(“value2”, “UTF-8”);

    // Send data
    URL url = new URL("http://hostname:80/cgi");
    URLConnection conn = url.openConnection();
    conn.setDoOutput(true);
    OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
    wr.write(data);
    wr.flush();

    // Get the response
    BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    String line;
    while ((line = rd.readLine()) != null) {
        // Process line...
    }
    wr.close();
    rd.close();
} catch (Exception e) {
}

onde key é o nome do parametro e value o valor

Bom que funciona, agora pergunta se entendi o funcionamento :roll:

fonte: javaalmanac