# Laden einer *.csv Datei von einem Webserver (http-request)



## Bory (23. Sep 2005)

Hallo, ich möchte mir von einem Webserver ne Datei ( hier : hallo.csv, gibt ein einfaches hallo raus) in meinem Browser anzeigen lassen.
Wenn ich den Webserver mit absoluten Pfad der Datei im Browser eingebe so bekomme ich die Datei in ne Excel-Tabelle angezeigt.
Möchte es allerdings in der DOS-Eingabeauffoderung mit Parameterübergabe realisieren.


  Fehlermeldung :  C:\Programme\Java\jdk1.5.0_05\bin>java javaKlasse 443 hallo.pl
                           java.net.SocketException: Network is unreachable: connect

habe keine Firewall od. ähnliches weshalb das nicht klappen könnte.Port stimmt auch....hmmm ?
Muss ich den absoluten Pfad im Code angeben ??? Wenn ja, wie ???
Kenne mich leider noch nicht so aus in Sachen Netzwerkprogrammierung in Java (
Gruss Bory

import java.net.*;
import java.io.*;
import java.util.*;

public class javaKlasse {

    public static void main(String[] args){
        if (args.length != 2){
            System.err.println("\nUsuage: java javaKlasse <host> <file>");
            System.exit(1);
        }
        try {
            Socket sock = new Socket(args[0],443);
            OutputStream out = sock.getOutputStream();
            InputStream in   = sock.getInputStream();

            // Get Kommando senden
            String s = "Get " + args[1] + "HTTP/1.0" + "r/n/r/n";
            out.write(s.getBytes());

            // Ausgabe Lesen und Anzeigen
            int len;
            byte [] b= new byte[100];
            while ((len =in.read(b))!= -1){
                System.out.write(b, 0, len);
            }

            // Programm beenden
            in.close();
            out.close();
            sock.close();
        }   catch  (IOException e){
            System.err.println(e.toString());
            System.exit(1);

        }

    }

}


----------



## Roar (23. Sep 2005)

> java javaKlasse 443 hallo.pl


warum 433 als parameter?  da muss doch der host hin.
warum hallo.pl, ich dachte die datei heißt hallo.csv?

außerdem läuft http über port 80, warum connectest zu port 443?


----------



## Bleiglanz (24. Sep 2005)

du willst wohl SSL? guck mal in die API, gibts extra klassen dafür


----------



## Gast (25. Sep 2005)

443 ist der Port vom Webserver...hmm, dachte den bräuchte ich auch irgendwie...muss wohl dann die IP-Adresse als Parameter übergeben, aber ob's dann klappt ???
Die URL vom Server und somit zur Datei ist https://servername/cgi/hallo.pl
Nach dem Aufruf im Browser werde ich gefragt ob Öffnen od. Speichern der hallo.csv-Datei.
Stimmt SSL will ich haben ) aber ich will trotzdem erstmal so die Datei im Browser anzeigen lassen.


----------



## Bleiglanz (25. Sep 2005)

verwende einen

javax.net.ssl.SSLSocket


----------



## Gast (25. Sep 2005)

nen socket? ach hoer doch auf.
nimm ne urlconnection.
ungefaehr so:

InputStream is = (new URLConnection(new URL(bla)).getInputStream();


----------



## Bleiglanz (26. Sep 2005)

Stimmt, das ist wesentlich besser wenn man nur den Inhalt einer Seite will.


----------



## Bory (26. Sep 2005)

Danke für eure Hilfe.
Das mit der URL-Connection ist bestimmt gut,...hab zwar jetzt wieder ne Fehlermeldung, aber ich hoffe, dass man es noch hinkriegen kann.
java.net.URLConnection is abstract; cannot be instantiated


----------



## Bory (26. Sep 2005)

Ok, habs fehlerfrei hingekriegt ;O)


----------

