Avatar billede theboy Nybegynder
26. marts 2003 - 12:58 Der er 9 kommentarer og
1 løsning

Forbindelse fra applet, via PHP script til MySQL

Jeg ville høre om der er nogen som kan give nogle eksempler på hvordan man kan lave forbindelsen til MySQL via PHP fra en applets. Altså nogle Kode-eksempler fra appleten hvordan den forbinder til PHP-scriptet (altså de kald den sender) og hvordan PHP scriptet skal sende informationen videre.

Jeg vil gerne se eksempler på hvordan man både kan sende og hente information.

Jeg håber virkelig der er nogen der kan hjælpe, da jeg bestemt ikke tror jeg er den eneste der sidder med dette problem.
Avatar billede arne_v Ekspert
26. marts 2003 - 13:06 #1
For at hente data eller sende data sender du en HTTP GET eller POST operation.

Med en java.net.HttpURLConnection !
Avatar billede theboy Nybegynder
26. marts 2003 - 13:10 #2
Kan du give et par kode eksempler?
Avatar billede arne_v Ekspert
26. marts 2003 - 13:13 #3
Følgende eksempler viser hvordan man laver en simpel GET:

        try {
            URL url = new URL("http://www.foobar.dk/");
            HttpURLConnection con = (HttpURLConnection)url.openConnection();
            con.connect();
            if(con.getResponseCode() == HttpURLConnection.HTTP_OK) {
                InputStream is = con.getInputStream();
                OutputStream os = new FileOutputStream("C:\\z.z");
                byte[] b = new byte[1000];
                int n;
                while((n = is.read(b)) >= 0) {
                    os.write(b,0,n);
                }
                os.close();
                is.close();
            }
            con.disconnect();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
Avatar billede arne_v Ekspert
26. marts 2003 - 13:14 #4
Ja - eksemplet skriver data til en fil C:\z.z - du vil jo nok gøre
noget andet med data, f.eks.:
  String s = new String(b, 0, n);
Avatar billede arne_v Ekspert
26. marts 2003 - 13:19 #5
Hvis du skal sende data med, så er det nemmeste vare at
ligge dem i enden af URL'en a la:

http://www.foobar.dk/side.php?a=1&b=22
Avatar billede theboy Nybegynder
26. marts 2003 - 13:27 #6
=> Arne_v
Jeg har følgende: et webhotel med en MySQL databasen og en hjemmeside på Http://websted.dk

På websteder vil der så ligge et .PHP fil: Http://websted.dk/forbindelse.php
som skal tage de indput fra kommer fra Appletten: Http://websted.dk/applet.htm

Hvis jeg så har en applet med et textField & en knap, og jeg ska bruge din GET metode til at hente data ind i det textField fra en MySQL database, ved et tryk på knappen, Hvordan skal min "applet.java" fil ser ud?
Og hvordan skal mit PHP script ser, for kunne sende informationer mellem appletten og MySQL?
Avatar billede arne_v Ekspert
26. marts 2003 - 13:35 #7
Hvis du skal send f=123 til PHP bruger du bare
HttpURLConnection til Http://websted.dk/forbindelse.php?f=123 !

Din PHP side skal så fiske parameter "f" og gøre noget med den
og dens værdi "123". Det må være ret basic PHP. Men jeg kender
desværre ikke selv PHP.

PHP siden returnerer så også et eller andet til appletten
som den kan bruge (eller lade være med).
Avatar billede =maddog= Nybegynder
26. marts 2003 - 16:42 #8
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;
      }

Dette er sådan set bare en udbygning af Arne's eksempel. Her bliver parametrene sendt via en POST (så større data kan afsendes) og responsen fra serveren bliver returneret som StringBuffer.
Avatar billede theboy Nybegynder
28. marts 2003 - 10:13 #9
Kan i evt. også give et eksempel på hvordan data modtages fra fx et PHP script?
Avatar billede arne_v Ekspert
28. marts 2003 - 10:18 #10
Jeg tror du skal spørge om det i PHP kategorien.

GET request med ?felt=værdi i URL er helt standard og
det kan enhver PHP haj svare på øjeblikkeligt.

En POST request med en klump data i body må også være
overkommeligt.
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