Sending several HTTP Requests in java - problem with OuputStreamWriter? -
i using java in order send http requests webservices. manage send one, cannot send two. part of code (some parts removed readability :
try { string data = "<soap:envelope xmlns:soap= ... datas xml ... </soap:envelope>"; url url = new url(".......url........"); httpurlconnection conn = (httpurlconnection) url.openconnection(); conn.addrequestproperty("content-type", "text/xml"); conn.addrequestproperty("soapaction", .......action......."); conn.setdooutput(true); outputstreamwriter writer = new outputstreamwriter(conn.getoutputstream()); // fail here second request //write parameters writer.write(data); writer.flush(); // response stringbuffer answer = new stringbuffer(); bufferedreader reader = new bufferedreader(new inputstreamreader(conn.getinputstream())); string line; while ((line = reader.readline()) != null) {answer.append(line); } writer.close(); reader.close(); //output response string str=answer.tostring(); // conn.disconnect(); // should put ? label.settext(str); } catch (exception ex) {label.settext(ex.getmessage());}
this request works fine. if put same after , tests, find not work (i change names of variables, in case..). have found fails @ line ouputstreamwriter. error getmessage in exception :
access denied (java.net.socketpermission ....url..... connect,resolve)
how fix ? figure out possible send several requests... method disconnect() useful here ?
i tried send request via other class (in fact, have webpage , javascript call requests 1 one), , not work too..
thank advice or !
===================== edit =======================
here whole applet :
import java.awt.borderlayout; import java.awt.color; import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.japplet; import javax.swing.jbutton; import javax.swing.jlabel; import netscape.javascript.jsexception; import netscape.javascript.jsobject; import java.io.bufferedreader; import java.io.ioexception; import java.io.inputstreamreader; import java.io.outputstreamwriter; import java.net.httpurlconnection; import java.net.malformedurlexception; import java.net.url; import java.net.urlconnection; public class test extends japplet { private jsobject jso; private jlabel label = new jlabel(); public void init(){ this.setsize(300, 80); label.sethorizontalalignment(jlabel.center); label.setforeground(color.blue); label.settext("hello world"); this.getcontentpane().add(label, borderlayout.north); } public void dojavascript(){ label.settext("hellooooooooo"); } public void closeconnect(string sectk, string sessid){ jso = jsobject.getwindow(this); label.sethorizontalalignment(jlabel.center); label.setforeground(color.blue); try{ string data ="dataaaaa"; label.settext("yes2"); url url = new url(".........url............."); httpurlconnection conn = (httpurlconnection) url.openconnection(); conn.addrequestproperty("content-type", "text/xml"); conn.addrequestproperty("soapaction", ".....url........"); conn.setdooutput(true); label.settext("yes25"); outputstreamwriter writer = new outputstreamwriter(conn.getoutputstream()); label.settext("yes3"); writer.write(data); writer.flush(); stringbuffer answer = new stringbuffer(); bufferedreader reader = new bufferedreader(new inputstreamreader(conn.getinputstream())); string line; while ((line = reader.readline()) != null) { answer.append(line); } writer.close(); reader.close(); //output response*/ string str=answer.tostring(); conn.disconnect(); label.settext(str); } catch (exception ex) { // label.settext("nooo"); label.settext(ex.getmessage()); } this.getcontentpane().add(label, borderlayout.north); } }
if call dojavascript javascript file, works. if call closeconnect same javascript file, not work, , retrieve in label "yes25", before "ouputstreamwriter"...
i hope clear.
thanks or advice
is second request going different server applet download from? if so, problem.
applets cannot connect or retrieve resources third party server (any server other server originated from).
http://download.oracle.com/javase/tutorial/deployment/applet/security.html
i recommend solving problem using rmi have applet communicate server, , have server make actual xml requests on applet's behalf. easy do, , using download server proxy enables applets sorts of stuff security manager restricts them doing.
Comments
Post a Comment