Avatar billede thomas_yde Nybegynder
04. oktober 2002 - 11:01 Der er 5 kommentarer og
1 løsning

Forbindelse til ASP side

Jeg sidder og bakser med dette problem. Jeg skal sende 2 parameter til en ASP side via JAVA. Nedstående kode laver en exception : Connection refused: connect

Er der nogen der kan se problemet?

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

public class TestASP
{
    public TestASP(){}
    public  void connect(){
        try {
            String uri =
            "http://www.yogl.dk/dmu/sendMail.asp" 
              +"?brugernavn=tydexx"
              +"&email=yde@yogl.dk";
            URL url = new URL(uri);
            URLConnection urlC = url.openConnection();
            urlC.connect();
          }
          catch(Exception e)
          {
              System.out.print(e.getMessage()+"\n");
          }
    }
    public static void main(String[] args)
    {
        TestASP ta = new TestASP();
        ta.connect();
    }
}
Avatar billede carstenknudsen Nybegynder
04. oktober 2002 - 11:17 #1
Prøv at lave en encoding som her:
String line = URLEncoder.encode("brugernavn", "UTF-8") + "=" + URLEncoder.encode("tydexx", "UTF-8");
        line += "&" + URLEncoder.encode("email", "UTF-8") + "=" + URLEncoder.encode("yed@yogl.dk", "UTF-8");
Avatar billede =maddog= Nybegynder
04. oktober 2002 - 11:36 #2
eller gør det via en HttpURLConnection. Nogenlunde således

String params = URLEncoder.encode("brugernavn=tydexx&email=yde@yogl.dk","UTF-8");
byte[] paramBytes = params.getBytes();
URL url = new URL("http://www.yogl.dk/dmu/sendMail.asp");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setDoOutput(true);
con.setDoInput(true);
con.setRequestMethod("POST");
con.setRequestProperty("Content-length", String.valueOf(bytes.length));
OutputStream out = con.getOutputStream();
out.write(bytes);
out.flush();
BufferedReader in = new BufferedReader(new InputStreamReader con.getInputStream()));
  while (true) {
      String line = in.readLine();
      if (line == null) break;
      System.out.println(line);
  }
in.close();
out.close();
con.disconnect();

Jeg har sat det til POST (er immervæk sikrere), men hvis du hellere vil gøre det med GET så sætter du bare det.
Avatar billede =maddog= Nybegynder
04. oktober 2002 - 11:39 #3
con.setRequestProperty("Content-length", String.valueOf(paramBytes.length));
OutputStream out = con.getOutputStream();
out.write(paramBytes);

off course. faktisk er der ingen grund til at lave strengen, for den skal kun bruges til at danne de bytes vi skal sende med OutputStream'en.
Avatar billede =maddog= Nybegynder
04. oktober 2002 - 11:50 #4
Med den her fik jeg outputtet "mail er sendt". Håber det er det rigtige :-)
import java.io.*;
import java.net.*;

public class HttpTester {
    public HttpTester() { }
   
    public static void main(String args[]) {
        try {
        byte[] params = URLEncoder.encode("brugernavn=tydexx&email=yde@yogl.dk","UTF-8").getBytes();
        URL url = new URL("http://www.yogl.dk/dmu/sendMail.asp");
        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;
            System.out.println(line);
        }
        in.close();
        out.close();
        con.disconnect();
        } catch (Exception e) { System.out.println("Nix "+e.getMessage());}
    }
}
Avatar billede thomas_yde Nybegynder
04. oktober 2002 - 12:54 #5
Det er sikkert bare min firewall så :(
Men tak for hjælpen.
mail er sendt det er den korrekte besked hvis det går godt.
Avatar billede =maddog= Nybegynder
04. oktober 2002 - 13:02 #6
du skulle gerne kunne se dine rettigheder med getPermission. Det skulle gerne se nogenlunde således ud
System.out.println(con.getPermission().toString());
giver følgende output
(java.net.SocketPermission www.yogl.dk:80 connect,resolve)
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