Avatar billede summersun Nybegynder
10. oktober 2003 - 17:36 Der er 26 kommentarer

java applet til PHP til mysql

jeg sidder og roder med noget java applet som jeg via et php script gerne vil have til at sende nogle data'er til en mysql db..

jeg har kigget på nettet og her på EXP.dk

og fandt da også noget, men det ser ikke rigtig ud til at virke, der sker i hvertfald ikke meget..

så er der ikke en venlig sjæl som kan kan vise mig hvordan pokker man får sådan noget til at virke :))

gerne lave en køre klar klasse eller noget

taget et sted fra exp.dk
    public StringBuffer postToURL(String postURL, String postParams) {
        StringBuffer response = new StringBuffer(300); // 300 byte buffer
        if (postURL == null) return null;
        try {
            byte[] params = postParams.getBytes();//URLEncoder.encode(postParams,"UTF-8").getBytes();
            URL url = new URL(postURL);
            HttpURLConnection con = (HttpURLConnection) url.openConnection();
            con.setDoOutput(true);
            con.setDoInput(true);
            con.setRequestMethod("POST");
            con.setRequestProperty("Content-length", params.length+"");
            OutputStream out = con.getOutputStream();
            out.write(params);
            out.flush();
            BufferedReader in = new BufferedReader(new InputStreamReader (con.getInputStream()));
            while (true) {
              String line = in.readLine();
            if (line == null) break;
              response.append(line);
            }
            in.close();
            out.close();
            con.disconnect();
        } catch (Exception e) { response.append("Error connecting to server: "+e.getMessage());}
        return response;
    }
Avatar billede arne_v Ekspert
10. oktober 2003 - 17:42 #1
Du sætter vel bare koden ind i din applet.

Hvad er spørgsmålet ?
Avatar billede arne_v Ekspert
10. oktober 2003 - 17:44 #2
Og så kaldes den vel med:

postToURL("http://www.xyz.dk/dosomething.php", "f1=val1&f2=val");
Avatar billede summersun Nybegynder
10. oktober 2003 - 17:45 #3
tjaaa.....det har jeg prøvet men...

det virker så bare ikke rigtig :)

for der sker ingenting :(
Avatar billede magoo20000 Nybegynder
10. oktober 2003 - 17:50 #4
Ja, det burde være ret ligetil. Har lige fundet
http://www.faqts.com/knowledge_base/view.phtml/aid/852
men har ikke set på det endnu.
Siden linker til en anden side på noget .zip, der kan downloades.
Avatar billede magoo20000 Nybegynder
10. oktober 2003 - 17:54 #5
Avatar billede arne_v Ekspert
10. oktober 2003 - 17:58 #6
Hvad mener du med sker ingenting ?

For den ikke connection til PHP scriptet ?

Får PHP scriptet ikke parametrene ?

Får appletten ikek svaret ?
Avatar billede summersun Nybegynder
10. oktober 2003 - 18:01 #7
arne_v >>

ehm.. så vidt jeg kan se... så bliver php scriptet ikk kaldt overhoved
Avatar billede arne_v Ekspert
10. oktober 2003 - 18:05 #8
Bliver det smidt en exception ?

Har du prøvet at teste på HTTP status code ?
Avatar billede summersun Nybegynder
10. oktober 2003 - 18:07 #9
der er ingen exeptions....

og har ikk prøvet HTTP status.. for jeg ved ikk hvad det er :/
Avatar billede arne_v Ekspert
10. oktober 2003 - 18:09 #10
Efter den:

con.connection der ikke er det kan du bruge:

con.getResponseCode()
Avatar billede arne_v Ekspert
10. oktober 2003 - 18:10 #11
Prøv lige ogs sæt en con.connect();

ind !
Avatar billede arne_v Ekspert
10. oktober 2003 - 18:12 #12
out.flush();
con.connect();
Avatar billede summersun Nybegynder
10. oktober 2003 - 18:13 #13
og sådan ca hvor skal det sættes ind? ;)
Avatar billede arne_v Ekspert
10. oktober 2003 - 18:14 #14
Efter flush.
Avatar billede summersun Nybegynder
10. oktober 2003 - 18:18 #15
det har jeg prøvet nu.. og der sker stadig ingenting
Avatar billede arne_v Ekspert
10. oktober 2003 - 18:24 #16
Og du verificeret i access loggen at der ikke bliver sendt noget til serveren ?

Og checket i java conollen at der ikke er nogle exceptions ?
Avatar billede summersun Nybegynder
10. oktober 2003 - 18:26 #17
eeehhh ja?...

jeg har ikk lige udmiddelbart adgang til en access log.....  og der kommer ingen fejl når jeg compiler .. hvis det er hvad du mener?
Avatar billede arne_v Ekspert
10. oktober 2003 - 18:28 #18
Access log er loggen på serveren over requests modtaget.

Jeg har lige testet koden i et lille standalone program her
og den virker fint (også uden con.connect).

Så jeg synes at du skal checke lidt på server siden.
Avatar billede summersun Nybegynder
10. oktober 2003 - 18:37 #19
kan jeg ikk prøve med dit program så?
Avatar billede arne_v Ekspert
10. oktober 2003 - 18:42 #20
Jo men kdoen er helt den samme:

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

public class PostTest {
    public static StringBuffer postToURL(String postURL, String postParams) {
        StringBuffer response = new StringBuffer(300);
        if (postURL == null)
            return null;
        try {
            byte[] params = postParams.getBytes();
            URL url = new URL(postURL);
            HttpURLConnection con = (HttpURLConnection) url.openConnection();
            con.setDoOutput(true);
            con.setDoInput(true);
            con.setRequestMethod("POST");
            con.setRequestProperty("Content-length", params.length + "");
            OutputStream out = con.getOutputStream();
            out.write(params);
            out.flush();
            BufferedReader in =
                new BufferedReader(new InputStreamReader(con.getInputStream()));
            while (true) {
                String line = in.readLine();
                if (line == null)
                    break;
                response.append(line);
            }
            in.close();
            out.close();
            con.disconnect();
        } catch (Exception e) {
            response.append("Error connecting to server: " + e.getMessage());
        }
        return response;
    }
    public static void main(String[] args) {
        System.out.println(postToURL("http://www.xxx.dk/htbin/tell2", "f1=val1&f2=val2"));
    }
}
Avatar billede summersun Nybegynder
10. oktober 2003 - 18:50 #21
er der ikk en måde hvor jeg kan tjekke den url jeg sender til siden??

eller se hvilket respons man får tilbage
Avatar billede arne_v Ekspert
10. oktober 2003 - 18:54 #22
Response bliver jo returneret fra metoden.

Du kan checke HTTP status med con.getResponseCode().
Avatar billede summersun Nybegynder
10. oktober 2003 - 18:55 #23
hvor skal den sættes ind
Avatar billede arne_v Ekspert
10. oktober 2003 - 18:57 #24
Hm.

Efter flush vil jeg tro.
Avatar billede summersun Nybegynder
10. oktober 2003 - 18:59 #25
der skal vel lidt mere til?

for den skriver da ikk noget ud
Avatar billede arne_v Ekspert
10. oktober 2003 - 19:01 #26
response.append(con.getResponseCode());

eller noget i den stil.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester