package org.phylowidget.net; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.InetAddress; import java.net.Socket; import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder; public class PhyloTransformServices { private static String replaceXmlChars(String s) { // s = s.replaceAll("<", "<"); s = s.replaceAll("&","&"); return s; } // public static String transformTree2(String urlString, String xmldata) throws Exception // { // xmldata = replaceXmlChars(xmldata); // // xmldata = "nexml="+xmldata; // //Create socket // URL url = new URL(urlString); // String hostname = url.getHost(); // String path = url.getPath(); //// String hostname = "www.pascalbotte.be"; // int port = 80; // InetAddress addr = InetAddress.getByName(hostname); // Socket sock = new Socket(addr, port); // // //Send header //// String path = "/rcx-ws/rcx"; // BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream(),"UTF-8")); // // You can use "UTF8" for compatibility with the Microsoft virtual machine. // wr.write("POST " + path + " HTTP/1.0\r\n"); // wr.write("Host: "+hostname+"\r\n"); // wr.write("Accept: */*\r\n"); // wr.write("Content-Type: application/x-www-form-urlencoded\r\n"); //// wr.write("Content-Type: text/xml\r\n"); // wr.write("Content-Length: " + xmldata.length() + "\r\n"); // wr.write("\r\n"); // // //Send data //// System.out.println(xmldata); // wr.write(xmldata); // wr.flush(); // // // Response // BufferedReader rd = new BufferedReader(new InputStreamReader(sock.getInputStream())); // String line; // StringBuffer sb = new StringBuffer(); // boolean areWeThereYet = false; // while((line = rd.readLine()) != null) // { // if (areWeThereYet) // { // sb.append(line); // } // if (line.startsWith("Content-Type")) // areWeThereYet = true; // } //// System.out.println("RESPONSE:"+sb.toString()); // return sb.toString(); // } public static String transformTree(String urlString, String nexml) throws Exception { // Construct data nexml = replaceXmlChars(nexml); String data = URLEncoder.encode("nexml", "UTF-8") + "=" + URLEncoder.encode(nexml, "UTF-8"); // data += "&" + URLEncoder.encode("key2", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8"); // Send data URL url = new URL(urlString); URLConnection conn = url.openConnection(); conn.setDoOutput(true); OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); wr.write(data); wr.flush(); // Get the response BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; StringBuffer sb = new StringBuffer(); while ((line = rd.readLine()) != null) { sb.append(line); sb.append("\n"); } wr.close(); rd.close(); String s = sb.toString(); return s; } }