Socket que no se conecta

Florencia
12 de Enero del 2004
Estoy en un file .java y necesito llamar a una jsp que esta en otra ip, la cuestin es que cuando me quiero conectar con este codigo:

public String verifyCreditCard(String s, String s1, String s2, String s3, String s4, String s5, String s6)
{
try
{ System.out.println("Esta en worldpay");
SSLSocketFactory sslsocketfactory = (SSLSocketFactory)SSLSocketFactory.getDefault();
SSLSocket sslsocket = (SSLSocket)sslsocketfactory.createSocket("select.worldpay.com", 443);
Properties properties = new Properties();
properties.setProperty("instId", "82340");
properties.setProperty("cartId", s3);
properties.setProperty("amount", s6);
properties.setProperty("currency", "USD");
properties.setProperty("testMode", "100");
properties.setProperty("name", (cCard.getFirstName()+ cCard.getLastName()));
properties.setProperty("address", cCard.getAddress());
properties.setProperty("postcode", cCard.getPostalZip());
properties.setProperty("country", cCard.getCountry());
String s7 = buildQueryString(properties);
String s8 = "POST /wcc/purchase?" + s7 + " HTTP/1.1n";
s8 = s8 + "Content-Type: application/x-www-form-urlencodedn";
s8 = s8 + "Host: select.worldpay.com:443n";
s8 = s8 + "Cache-Control: no-cachennn";
System.out.println("[WorldPayProcessor FINAL:"+ s8);
OutputStream outputstream = sslsocket.getOutputStream();
outputstream.write(s8.getBytes());
outputstream.flush();
java.io.InputStream inputstream = sslsocket.getInputStream();
BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(inputstream));
StringBuffer stringbuffer = new StringBuffer();
String s9 = null;
boolean flag = false;
while((s9 = bufferedreader.readLine()) != null)
{System.out.println(s9);
if(s9.length() == 0)
flag = true;
if(flag)
stringbuffer.append(s9);
}
return stringbuffer.toString();
}
catch(Exception exception)
{
exception.printStackTrace();
return "[ERROR] " + exception.getMessage();
}

cuando ejecuto esto me da el siguiente resultado

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>400 Bad Request</TITLE>
</HEAD><BODY>
<H1>Bad Request</H1>
Your browser sent a request that this server could not understand.<P>
The request line contained invalid characters following the protocol string.<P>
<P>
<HR>
<ADDRESS>Apache/1.3.27 Server at select.worldpay.com Port 443</ADDRESS>
</BODY></HTML>


y ya no se que hacer, la verdad que no me doy cuenta que es lo que tengo que arreglar, si me pueden ayudar se los voy a agradecer.

eldrum
12 de Enero del 2004
Desconozco el trabajo con SSL, y cual es tu aplicacion en concreto, pero ojeando un poco el codigo creo que lo que hay es un fallo de concepto.
Para llamar a un jsp no tendrías que abrir un socket (alguna vez has usado telnet para descargarte una pagina web, pues es lo mismo), si no que deberias usar la clase URL(...), junto con el metodo openStream. No se si existen manipuladores de contenido para SSL, pero creo que si.
Ademas debes tener en cuenta que lo unico que vas a poder ver de la ejecución del jsp es la salida en formato html.