Problema con socket segunda peticion
En principio la clase request q cree realiza la primera peticion correctamente, pero al realizarla segundame devuelve vacio en el caso de q comente wr.close();rd.close();despues d realizar la peticion,o error si los dejo sin comentar.no hay forma d q haga dos peticiones seguidas
Estaeslaclase
importjava.io.BufferedReader;
importjava.io.BufferedWriter;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.io.OutputStreamWriter;
importjava.io.UnsupportedEncodingException;
importjava.net.InetAddress;
importjava.net.Socket;
importjava.net.URLEncoder;
importjava.net.UnknownHostException;
publicclassrequest{
Stringhostname;
intport;
Socketsocket;
BufferedReaderrd;
BufferedWriterwr;
publicrequest(Stringhostname,intport)throwsIOException{
this.hostname=hostname;
this.port=port;
try{
InetAddressaddr=InetAddress.getByName(hostname);
socket=newSocket(addr,port);
}catch(UnknownHostExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
public String doPost(Stringpath,Stringdata)throwsIOException{
returnhacerPeticion("POST",path,data);
}
public String doGet(Stringpath,Stringdata)throwsIOException{
returnhacerPeticion("GET",path+"?"+data,"");
}
public String hacerPeticion(Stringpeticion,Stringpath,Stringdata)throwsIOException{
try{
wr=newBufferedWriter(newOutputStreamWriter(socket.getOutputStream(),"UTF8"));
wr.write(peticion+path+"HTTP/1.1\r\n");
wr.write("Accept:image/gif,image/jpeg,image/pjpeg,application/x-ms-application,application/vnd.ms-xpsdocument,application/xaml+xml,application/x-ms-xbap,application/x-shockwave-flash,*/*\r\n");
wr.write("Referer:http://"+hostname+"/global-adv.html\r\n");
wr.write("Accept-Language:es\r\n");
wr.write("User-Agent:Mozilla/4.0(compatible;MSIE8.0;WindowsNT6.0;Trident/4.0;SLCC1;.NETCLR2.0.50727;MediaCenterPC5.0;.NETCLR3.5.30729;.NETCLR3.0.30729)\r\n");
wr.write("Content-Type:application/x-www-form-urlencoded\r\n");
wr.write("Accept-Encoding:gzip,deflate\r\n");
wr.write("Host:"+hostname+"\r\n");
wr.write("Content-Length:"+data.length()+"\r\n");
wr.write("Connection:Keep-Alive\r\n");
wr.write("Cache-Control:no-cache\r\n");
wr.write("\r\n");
wr.write(data);
wr.flush();
rd=newBufferedReader(newInputStreamReader(socket.getInputStream()));
Stringline;
Stringtexto="";
line=rd.readLine();
while((line=rd.readLine())!=null){
texto=texto+"\n"+line;
}
/*Elproblema en principio viene d
estas dos lineas q vienena continuacion*/
wr.close();
rd.close();
//cerrarConexion();
returntexto;
}catch(UnsupportedEncodingExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
//cerrarConexion();
return"";
}
publicvoidcerrarConexion(){try{
this.socket.close();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}}
}
Y esta es la aplicacion principal.
importjava.io.IOException;
public class main{
public static void main(String[]args) throwsIOException{
requestprueba=newrequest("www.webestilo.com",80);
Stringstr="";
str=prueba.doGet("/php/ejem/procesa2.phtml","nombre=111&apellidos=222");
System.out.println("Peticion1:\n"+str);
str=prueba.doPost("/php/ejem/procesa2.phtml","nombre=333&apellidos=444");
System.out.println("Peticion2:\n"+str);
}
}
A ver si alguien me puede echar un cable con esto.Saludos
