Java -> URL -> POST

Olá.

Eu queria fazer o seguinte:

Tenho um website onde existe uma tela de login, com 2 campos, o de login e senha. E se loga pelo método POST.

Quero logar no site através de um aplicativo Java, então preciso passar essas informações pelo método POST.

Como posso proceder?

Obrigado.

Você precisa se conectar a um site através de sua aplicação desktop??

Já tentou usar o HttClient?

http://jakarta.apache.org/commons/httpclient/

Nem conheço! vou dar uma olhada, obrigado.

_Renatu… vc sabe se tenho que ter algo rodando na minha maquina pra funcionar aqueles exemplos? pq nenhum deles ta rodando…

geralmente fala assim:

run-single:
Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.apache.commons.httpclient.HttpClient.<clinit>(HttpClient.java:65)
at despertador.LerURL.main(LerURL.java:28)
Java Result: 1

Outra coisa… alguem me ajude… eu consegui este código, mas ele só da a mensagem “Bad post…”

[code]import java.net.;
import java.io.
;
import java.awt.;
import java.awt.event.
;
import javax.swing.*;

public class LerURL extends JPanel implements ActionListener {
JTextField nameField, passwordField;
String postURL;

GridBagConstraints constraints = new GridBagConstraints( );
void addGB( Component component, int x, int y ) {
constraints.gridx = x; constraints.gridy = y;
add ( component, constraints );
}

public LerURL() {
this.postURL = "http://www.meusite/login.php";
JButton postButton = new JButton("Post");
postButton.addActionListener( this );
setLayout( new GridBagLayout( ) );
addGB( new JLabel("Login:"), 0,0 );
addGB( nameField = new JTextField(20), 1,0 );
addGB( new JLabel("Password:"), 0,1 );
addGB( passwordField = new JPasswordField(20),1,1 );
constraints.gridwidth = 2;
addGB( postButton, 0,2 );
}

public void actionPerformed(ActionEvent e) {
postData();
}

protected void postData( ) {
try {
StringBuffer sb = new StringBuffer( );
sb.append( URLEncoder.encode("login", "UTF-8") +"=" );
sb.append( URLEncoder.encode("teste", "UTF-8") );
//sb.append( URLEncoder.encode(nameField.getText(), "UTF-8") );
sb.append( "&" + URLEncoder.encode("password", "UTF-8")+"=" );
sb.append( URLEncoder.encode("teste", "UTF-8") );
//sb.append( URLEncoder.encode(passwordField.getText(), "UTF-8") );
String formData = sb.toString( );

  URL url = new URL&#40; postURL &#41;;
  HttpURLConnection urlcon = &#40;HttpURLConnection&#41; url.openConnection&#40;  &#41;;
  urlcon.setRequestMethod&#40;&quot;POST&quot;&#41;;
  urlcon.setRequestProperty&#40;&quot;Content-type&quot;, &quot;application/x-www-form-urlencoded&quot;&#41;;
  urlcon.setDoOutput&#40;true&#41;;
  urlcon.setDoInput&#40;true&#41;;
  PrintWriter pout = new PrintWriter&#40; new OutputStreamWriter&#40;
      urlcon.getOutputStream&#40;  &#41;, &quot;8859_1&quot;&#41;, true &#41;;
  pout.print&#40; formData &#41;;
  pout.flush&#40;  &#41;;

  // read results...
  if &#40; urlcon.getResponseCode&#40;  &#41; != HttpURLConnection.HTTP_OK &#41;
    System.out.println&#40;&quot;Posted ok!&quot;&#41;;
  else &#123;
    System.out.println&#40;&quot;Bad post...&quot;&#41;;
    
  &#125;
  //InputStream in = urlcon.getInputStream&#40;  &#41;;
  // ...
  
    // Get the response

// BufferedReader rd = new BufferedReader(new InputStreamReader(urlcon.getInputStream()));
// String line;
// while ((line = rd.readLine()) != null) {
// System.out.println(line);
// }

&#125; catch &#40;MalformedURLException e&#41; &#123;
  System.out.println&#40;e&#41;;     // bad postURL
&#125; catch &#40;IOException e2&#41; &#123;
  System.out.println&#40;e2&#41;;    // I/O error
&#125;
  System.exit&#40;0&#41;;

}

public static void main( String [] args ) {
JFrame frame = new JFrame("SimplePost");
frame.getContentPane().add( new LerURL(), "Center" );
frame.pack();
frame.setVisible(true);
}
}[/code]