Announcement

Collapse
No announcement yet.

Senden an ein cgi per URLConnection

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Senden an ein cgi per URLConnection

    Moin,

    ich will per URLConnection an ein cgi-Form senden. Hab schon mehrere Sachen aus dem Netz ausprobiert. Auslesen kann ich das cgi, also der erste Teil da funktioniert. Im Netz finde ich auch keine anderen Beispiele. Woran könnte es liegen?

    Code:
    public static void main( String[] args ) throws Exception 
         { 
            URL url = new URL("http://192.168.1.1/st_device.cgi"); 
            String authorisation ="user:password"; 
            String base64="Basic "+new sun.misc.BASE64Encoder().encode(authorisation.getBytes()); 
            URLConnection conn = url.openConnection(); 
            conn.setRequestProperty( "Authorization", base64 ); 
            conn.connect(); 
            InputStream stream = conn.getInputStream(); 
            System.out.println( new Scanner(stream).useDelimiter("\\Z").next() ); 
            stream.close(); 
            
            url = new URL("http://192.168.1.1/st_device.cgi"); 
            conn = url.openConnection(); 
            conn.setRequestProperty( "Authorization", base64 ); 
            conn.setDoOutput(true); 
            conn.connect(); 
            String befehl="disconnect=Disconnect"; 
            OutputStream pw = conn.getOutputStream(); 
            pw.write(befehl.getBytes()); 
            pw.close(); 
         }



    In st_device.html steht folgendes:

    Code:
    <form id="form1" name="form1" method="post" action="st_device.cgi"> 
    [...] 
    <input type=submit name="connect" value="Connect">&<input type=submit name="disconnect" value="Disconnect">




    Ist es überhaupt richtig die cgi-Datei anzusprechen? So wie ich das verstanden habe schon. Wobei aber auch das ansprechen der html-Datei nicht funktioniert hat.

  • #2
    Wen es interessiert wie es fertig aussieht:

    Code:
    import org.apache.commons.httpclient.Credentials;
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.NameValuePair;
    import org.apache.commons.httpclient.UsernamePasswordCredentials;
    import org.apache.commons.httpclient.auth.AuthScope;
    import org.apache.commons.httpclient.methods.PostMethod;
    
    public class Reconnect {
    
    	  public static void main( String[] args ) throws Exception 
    	  {
    		  HttpClient client = new HttpClient();
    		  client.getParams().setAuthenticationPreemptive(true);
    		  Credentials defaultcreds = new UsernamePasswordCredentials("user", "passwort");
    		  client.getState().setCredentials(new AuthScope("192.168.1.1", 80, AuthScope.ANY_REALM), defaultcreds);
    		  
    		  PostMethod post = new PostMethod("http://192.168.1.1/st_device.cgi");
    		  NameValuePair[] data = {
    		          new NameValuePair("disconnect", "Disconnect"),
    		        };
    		  post.setRequestBody(data);
    		  client.executeMethod(post);
    		  System.out.println(post.getStatusCode());
    		  post.releaseConnection();
    	  } 
    }
    Man benötigt:
    http://jakarta.apache.org/commons/httpclient
    http://jakarta.apache.org/commons/codec/
    http://jakarta.apache.org/commons/logging/

    Comment


    • #3
      Hallo,

      habe ein ähnliches problem nur dass bei mir <input type="image"> ist die keine value haben...


      <input type="image" name="removeButton" src="/bop/ebp/images/buttons/but_substract.gif" border="0" alt="Entfernen"><br>
      <img src="/bop/ebp/images/pixel.gif" height="5" border="0"><br>

      <!-- A D D A L L B U T T O N -->
      <input type="image" name="addAllButton" src="/bop/ebp/images/buttons/but_add_all.gif" border="0" alt="Alle zuweisen"><br>
      <img src="/bop/ebp/images/pixel.gif" height="5" border="0"><br>


      ich habe folgendes gemacht:
      NameValuePair bla1 = new NameValuePair("addAllButton", "addAllButton");

      nützt aber nix, weiss jemand wie ich das lösen kann?

      danke

      Comment


      • #4
        Hallo,
        unter http://www.galileocomputing.de/openb...sel_17_004.htm gibt es ein Beispiel, wie man ein POST-Request ausführt, das sollte Euch weiterhelfen.
        Zuletzt editiert von ecker; 26.04.2008, 00:43.

        Comment

        Working...
        X