| Author |
HttpUrlConnection - cXML PunchOutSetupRequest
|
Ron Khera
Greenhorn
Joined: Jun 27, 2005
Posts: 4
|
|
Hi folks I am creating an application to send cXML documents using a HttpURLConnection. My problem is that a response document I receive contains a string url that I need to luanch in a browser. When I copy the url into my browser its get http 401 error. How can I luanch a browser from my java app. Is there any connection info in the response needed to luanch the browser ? Below is my code with the response. *** Headers *** Content-Type: text/xml Set-Cookie: ssnid=; path=/; Connection: Keep-Alive Content-Length: 765 *** Connection Detail *** Follow Redirects: true Request Method: POST getContentType: text/xml getContentLength: 765 getContentEncoding: null getDate: 0 getExpiration: 0 getLastModifed: 0 Response Code: 200 Response Message: OK *** Content *** <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.1.009/cXML.dtd"> <cXML version="1.1" payloadID="20050810.133143_627804_uscobrmfa-sw-04" timestamp="2005-08-10T13:31:43-06:00"> <Response> <Status code="200" text="OK"/> <PunchOutSetupResponse> <StartPage> <URL>https://www.eway.com/eway/celogin.p_ce_eway_b2b_punchout?userid=0000000BB689431ACCFD1BBADE1FFFD7D22A2AEE0005E83C0000000015CD&b2b_profile_id=5939734&sessionId=0000000A6273ED3D5DAE7D35BEC9A6A4738E40500005E83C0000000015CD&operation=edit&webmethods_cart_url=https%3A%2F%2Fb2bprod.cexp.com%2Finvoke%2Fprocess%2Freceive_punchOutCart&exit_url=X</URL> </StartPage> </PunchOutSetupResponse> </Response></cXML> The URL tag should be launchable (new word) This is my HTTP POST method. public StringBuffer post() { // StringBuffer will contain result of post or any exception thown StringBuffer result = new StringBuffer(); try { // URL must use the http protocol! URL url = new URL(urlName); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); // HTTP Method and options conn.setRequestMethod("POST"); conn.setAllowUserInteraction(false); conn.setDoOutput(true); // Set Headers conn.setRequestProperty("Content-Type", "text/xml; charset=\"utf-8\""); conn.setRequestProperty("Content-length", Integer.toString(postData.length())); // Get the output stream to POST our data OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream(),"UTF8"); out.write(postData); out.flush(); out.close(); // Display Headers if(dspHeaders) { result.append(getHeaders(conn).toString()); } // Store the response in the result StringBuffer InputStream rawInStream = conn.getInputStream(); BufferedReader rdr = new BufferedReader(new InputStreamReader(rawInStream, "UTF8")); String line; while ((line = rdr.readLine()) != null) { result.append(line); } } catch (Exception e) { result.append("** Post Error: " + e + " **\n"); } return result; } public StringBuffer getHeaders(HttpURLConnection cn) { StringBuffer sb = new StringBuffer(); try { int n = 1; String key; sb.append("*** Headers ***\n"); while ((key = cn.getHeaderFieldKey(n)) != null) { String value = cn.getHeaderField(n); sb.append(key + ": " + value + "\n"); n++; } sb.append("\n*** Connection Detail ***\n"); sb.append("Follow Redirects: "+cn.getFollowRedirects()+"\n"); sb.append("Request Method: "+cn.getRequestMethod()+"\n"); sb.append("getContentType: " + cn.getContentType()+"\n"); sb.append("getContentLength: " + cn.getContentLength()+"\n"); sb.append("getContentEncoding: " + cn.getContentEncoding()+"\n"); sb.append("getDate: " + cn.getDate()+"\n"); sb.append("getExpiration: " + cn.getExpiration()+"\n"); sb.append("getLastModifed: " + cn.getLastModified()+"\n"); sb.append("Response Code: "+cn.getResponseCode()+"\n"); sb.append("Response Message: "+cn.getResponseMessage()+"\n"); sb.append("\n*** Content ***\n"); } catch (Exception e) { sb.append("** getHeader Errors : "+e); } return sb; }
|
 |
 |
|
|
subject: HttpUrlConnection - cXML PunchOutSetupRequest
|
|
|