RESOLVIDO: internet - enviando valores pelo metodo POST

1 resposta
venomtotal

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();
   }
    
   

}

1 Resposta

venomtotal

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

Criado 8 de maio de 2007
Ultima resposta 8 de mai. de 2007
Respostas 1
Participantes 1