public Result call() {
		String query = null;
		String path = getOperationPath() + apiInterface.getApplicationId();

		if ( countryCode != null ) {
			path += "/" + countryCode;
		}

		path += '/';

		final Iterator<Entry<String , String>> entryIterator = parameters.entrySet().iterator();

		while ( entryIterator.hasNext() ) {
			final Entry<String , String> current = entryIterator.next();

			if ( query == null ) {
				query = "?";
			} else {
				query += "&";
			}

			try {
				query += URLEncoder.encode( current.getKey() , "UTF-8" ) + "=" + URLEncoder.encode( current.getValue() , "UTF-8" );
			} catch ( final UnsupportedEncodingException ignored ) {
			}
		}

		try {
			final HttpURLConnection httpURLConnection = apiInterface.getHttpConnection( path + query );
			final InputStream inputStream = httpURLConnection.getInputStream();

			try {
				final BufferedReader bufferedReader = new BufferedReader( new InputStreamReader( inputStream ) );
				final StringBuilder stringBuffer = new StringBuilder();
				final ResponseBuilder responseBuilder = new JSONResponseBuilder();

				String line = null;

				while ( ( line = bufferedReader.readLine() ) != null ) {
					stringBuffer.append( line + '\n' );
				}

				responseBuilder.parse( stringBuffer.toString() );

				return responseBuilder.getResult();
			} finally {
				try {
					inputStream.close();
				} catch ( final IOException ignored ) {
				}
			}
		} catch ( final MalformedURLException ignored ) {
		} catch ( final IOException ignored ) {
		}

		return null;
	}