/** * Copyright (c) 2005-2006 Aptana, Inc. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html. If redistributing this code, * this entire header must remain intact. */ package org.eclipse.eclipsemonkey.lang.javascript.doms.io; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import org.mozilla.javascript.ScriptableObject; /** * @author Paul Colton */ public class WebRequest extends ScriptableObject { /* * Fields */ private static final long serialVersionUID = -2151860369251448749L; private String _method; private String _uri; /* * Constructors */ /** * XMLHttpRequest */ public WebRequest() { this._method = null; this._uri = null; } /* * Methods */ /** * @see org.mozilla.javascript.Scriptable#getClassName() */ public String getClassName() { return "WebRequest"; //$NON-NLS-1$ } /** * jsFunction_open * * @param method * @param uri */ public void jsFunction_open(String method, String uri) { this._method = method.toLowerCase(); this._uri = uri; } /** * jsFunction_send * * @param postData * @return String */ public String jsFunction_send(String postData) { URL url = null; try { if (_uri.startsWith("http")) //$NON-NLS-1$ { url = new URL(_uri); } else { url = new URL("file://./" + _uri); //$NON-NLS-1$ } } catch (MalformedURLException e) { System.err.println("Error: " + e); //$NON-NLS-1$ return ""; //$NON-NLS-1$ } try { URLConnection conn = url.openConnection(); OutputStreamWriter wr = null; if (this._method.equals("post")) //$NON-NLS-1$ { conn.setDoOutput(true); wr = new OutputStreamWriter(conn.getOutputStream()); wr.write(postData); wr.flush(); } // Get the response BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); StringBuffer sb = new StringBuffer(); String line; while ((line = rd.readLine()) != null) { sb.append(line + "\r\n"); //$NON-NLS-1$ } if (wr != null) { wr.close(); } rd.close(); return sb.toString(); } catch (Exception e) { System.err.println("Error: " + e); //$NON-NLS-1$ return ""; //$NON-NLS-1$ } } }