protected String postRequestBinder( String iUrl, DataBinder content, String iContentType )
			throws ServiceException {
		Report.trace( "bezzotechcosign", "Entering postRequestBinder, passed in parameters:" +
				"\n\tiUrl: " + iUrl + "\n\tcontent:\n\tiContentType: " +	iContentType, null );
		StringBuffer response = new StringBuffer();
		BufferedOutputStream _out = null;
		BufferedReader _read = null;
		InputStream _is = null;
		HttpURLConnection httpCon = null;
		try {
			URL url = new URL( iUrl );
			httpCon = ( HttpURLConnection ) url.openConnection();
			httpCon.setRequestProperty( "Content-Type", iContentType );
			httpCon.setDoOutput( true );
			httpCon.setRequestMethod( "POST" );

			Report.debug( "bezzotechcosign", "Avialable file size: " + content.m_inStream.available(), null );
			_out = new BufferedOutputStream( httpCon.getOutputStream() );
			byte[] baBuffer = new byte[64 * 1024];
			int len = 0;
			while ( ( len = content.m_inStream.read( baBuffer, 0, baBuffer.length ) ) > 0 ) {
				_out.write( baBuffer, 0, len );
			}
			_out.flush();
			if( httpCon.getResponseCode() <= 400 ) {
				_is = httpCon.getInputStream();
			}
			else {
				/* error from server */
				_is = httpCon.getErrorStream();
			}
			_read = new BufferedReader( new InputStreamReader( _is ) );
			String strBuffer = null;
			while ( ( strBuffer = _read.readLine() ) != null ) {
				response.append( strBuffer );
			}
		}
		catch ( MalformedURLException e ) {
			throwFullError( e );
		}
		catch ( ProtocolException e ) {
			throwFullError( e );
		}
		catch ( IOException e ) {
			throwFullError( e );
		}
		finally {
			try {
				content.m_inStream.close();
				_out.close();
				_is.close();
				_read.close();
				httpCon.disconnect();
			}
			catch ( IOException e ) {
				throwFullError( e );
			}
		}
		return response.toString();
	}