All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.xlightweb.PostRequest Maven / Gradle / Ivy

Go to download

xLightweb is a lightweight, high performance, scalable web network library

There is a newer version: 2.13.2
Show newest version
/*
 *  Copyright (c) xlightweb.org, 2008. All rights reserved.
 *
 *  This library is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Lesser General Public
 *  License as published by the Free Software Foundation; either
 *  version 2.1 of the License, or (at your option) any later version.
 *
 *  This library is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *  Lesser General Public License for more details.
 *
 *  You should have received a copy of the GNU Lesser General Public
 *  License along with this library; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 * Please refer to the LGPL license at: http://www.gnu.org/copyleft/lesser.txt
 * The latest copy of this software may be found on http://www.xlightweb.org/
 */
package org.xlightweb;

import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.net.MalformedURLException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;




/**
 * POST request
 * 
 * @author [email protected]
 */
public class PostRequest extends HttpRequest  {
	
	
	
	
	/**
	 * constructor 
	 * 
	 * @param url   the url string
	 * @throws MalformedURLException if the url is malformed
	 */
	public PostRequest(String url) throws MalformedURLException {
		super(new HttpRequestHeader("POST", url));
	}
	
	/**
	 * constructor 
	 * 
	 * @param url           the url string
	 * @param contentType   the content type
	 * @throws MalformedURLException if the url is malformed
	 * @throws IOException if an exception occurs
	 */
	public PostRequest(String url, String contentType) throws IOException, MalformedURLException {
		super("POST", url);
		setContentType(contentType);
	}

	
	/**
	 * constructor 
	 * 
	 * @param url           the url string
	 * @param contentType   the content type
	 * @param body          the body
	 * @throws MalformedURLException if the url is malformed
	 * @throws IOException if an exception occurs  
	 */
	public PostRequest(String url, String contentType, String body) throws IOException, MalformedURLException {
		super("POST", url, contentType, body);		
	}
	
	
	/**
	 * constructor 
	 * 
	 * @param url           the url string
	 * @param file          the file 
	 * @throws MalformedURLException if the url is malformed
	 * @throws IOException if an exception occurs 
	 */
	public PostRequest(String url, File file) throws IOException, MalformedURLException {
		super(new HttpRequestHeader("POST", url), new NonBlockingBodyDataSource("ISO-8859-1"));

		setContentType(getContentTypeByFileExtension(file));
		setContentLength((int) file.length());
		removeHeader("Transfer-Encoding");
		
		RandomAccessFile raf = new RandomAccessFile(file, "r");
		FileChannel fc = raf.getChannel();

		ByteBuffer buffer = ByteBuffer.allocate(getContentLength());
		fc.read(buffer);
		fc.close();
		raf.close();
		buffer.flip();
		
		getNonBlockingBody().append(buffer);
		getNonBlockingBody().setComplete(true);
	}
	
	
	
	/**
	 * constructor 
	 * 
	 * @param url           the url string
	 * @param encoding      the encoding
	 * @param contentType   the content type
	 * @param body          the body 
	 * @throws MalformedURLException if the url is malformed
	 * @throws IOException if an exception occurs 
	 */
	public PostRequest(String url, String contentType, String encoding, String body) throws IOException, MalformedURLException {
		super("POST", url, contentType, encoding, body);		
	}
	
	
	/**
	 * constructor 
	 * 
	 * @param url           the url string 
	 * @param contentType   the content type
	 * @param body          the body 
	 * @throws MalformedURLException if the url is malformed
	 * @throws IOException if an exception occurs 
	 */
	public PostRequest(String url, String contentType, byte[] body) throws IOException, MalformedURLException {
		super("POST", url, contentType, body);
	}
	
	

	
	/**
	 * constructor 
	 * 
	 * @param url           the url string
	 * @param contentType   the content type
	 * @param body          the body
	 * @throws MalformedURLException if the url is malformed
	 * @throws IOException if an exception occurs  
	 */
	public PostRequest(String url, String contentType, ByteBuffer[] body) throws IOException, MalformedURLException {
		super("POST", url, contentType, body);
	}
	
	
	/**
	 * constructor

* * Example: *
	 * PostRequest req = new PostRequest(urlBase + "/login", new String[] { "name=ItsMe", "pwd=VerySecret" }));
	 * ...
	 * 
* * * @param url the url string * @param formParameters array of FORM parameters formatted as = * @throws MalformedURLException if the url is malformed * @throws IOException if an exception occurs */ public PostRequest(String url, String[] formParameters) throws IOException, MalformedURLException { super("POST", url, "application/x-www-form-urlencoded; charset=utf-8", createFormUrlEncodedBody(formParameters)); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy