Some time ago I wrote a small http proxy where an web service call generates a http post. I used commons-httpclient: http://hc.apache.org/httpclient-3.x/and it was quite useful.
Cheers, Walter Mourão http://waltermourao.com.br http://arcadian.com.br http://oriens.com.br On Tue, Apr 21, 2009 at 7:58 AM, Georg Füchsle <giofy...@googlemail.com>wrote: > Hallo Simon, > > > Yes You have understood right: I want the user's browser to call > another server and dont want to continue processing my application > afterwards. > > I also have thought about the JavaScript solution. > But using a js solution generally I will write the xml-data into the > user's html. I did'nt like to do that, because this (xml-)data grants > You access to the other application. For this reason I wanted to hide > the xml-data. But using get-Parameters the xml-data is visible the > same. > > > Maybe should think about a ajax- functionality like this: > > I use a commandbutton that supports ajax-request and a hidden form > that makes a post-request. > When the user clickes the commandbutton i can fill the data of the > form via ajax and then in an after-ajax-event click the submit-button > of the form via JavaScript. Do You think this will work? > > I hoped, there would be an more easy way.... > > Thank You for Your help. > > Regards > > > Georg > > 2009/4/21 Simon Kitching <skitch...@apache.org>: > > Georg Füchsle schrieb: > >> hallo, > >> > >> > >> I have to call another application out from JSF. > >> To call this application i have to send (xml) data via post to the > >> start-url of this application. > >> > >> I found some example on the web: > >> > >> <code> > >> ExternalContext extContext = > >> FacesContext.getCurrentInstance().ctx.getExternalContext(); > >> String name = URLEncoder.encode("INTERFACENAME", "utf-8"); > >> String someData = "<?xml version='1.0' encoding='UTF-8'?> <data> > >> <caller value='giofyxle'/><app value='2'/></data></xml>"; > >> String value = URLEncoder.encode(someData , "UTF-8"); > >> String viewId = "http://www.server.com/startapp/index.html"+ '?' + > >> name + "=" + value; > >> String urlLink = extContext.encodeActionURL(viewId); > >> extContext.redirect(urlLink); > >> </code> > >> > >> > >> I tried this code. its calls the new application, but the data is sent > via GET: > >> > >> > http://www.server.com/startapp/index.html?INTERFACENAME==%3C%3Fxml+version%3D%271.0%27+encoding... > .. > >> > >> So the intefacedata is easily be read by the user. Has anyone any idea > >> how i can make a rediract with POST data? > > > > When you say "call another application out", do you mean that you want > > the *user's browser* to send a POST command to some other server, and > > then display the result returned from that server (without any further > > processing)? > > > > HTTP provides no way to do this; the http-redirect facilities only do > > GET commands. See the HTTP specification for more details. What your > > code above does (extContext.redirect) just generates an http redirect > > response, and the user's browser then processes this response and does > > the redirect. > > > > HTML provides no way to do this either AFAIK. > > > > JSF just uses HTTP and HTML, so JSF also has no way to do this. I think > > you will need to use javascript, ie generate an HTML page that contains > > an html <form> with the fields you want, and some javascript that then > > does document.getElementById(formId).submit() or something similar. > > > > > > Or does "call another application out"mean that after a JSF submit, you > > want *your server* to send a POST command to some other server, then > > process the result before sending back a new page to the user? You can > > use the apache commons-httpclient library to do things like this. > > > > Regards, > > Simon > > > > -- > > -- Emails in "mixed" posting style will be ignored > > -- (http://en.wikipedia.org/wiki/Posting_style) > > >