public String getOauthUrl(String url, String httpMethod, String customKey,
			String customSecrect, String tokenKey, String tokenSecrect,
			String verify, String callbackUrl, List<QParameter> parameters,
			StringBuffer queryString) {

		String parameterString = normalizeRequestParameters(parameters);

		String urlWithQParameter = url;
		if (parameterString != null && !parameterString.equals("")) {
			urlWithQParameter += "?" + parameterString;
		}

		URL aUrl = null;
		try {
			aUrl = new URL(urlWithQParameter);
		} catch (MalformedURLException e) {
			System.err.println("URL parse error:" + e.getLocalizedMessage());
		}
		String nonce = generateNonce();
		String timeStamp = generateTimeStamp();

		parameters.add(new QParameter(OAuthVersionKey, OAuthVersion));
		parameters.add(new QParameter(OAuthNonceKey, nonce));
		parameters.add(new QParameter(OAuthTimestampKey, timeStamp));
		parameters.add(new QParameter(OAuthSignatureMethodKey,
				HMACSHA1SignatureType_TEXT));
		parameters.add(new QParameter(OAuthConsumerKeyKey, customKey));

		if (tokenKey != null && !tokenKey.equals("")) {
			parameters.add(new QParameter(OAuthTokenKey, tokenKey));
		}

		if (verify != null && !verify.equals("")) {
			parameters.add(new QParameter(oAauthVerifier, verify));
		}

		if (callbackUrl != null && !callbackUrl.equals("")) {
			parameters.add(new QParameter(OAuthCallbackKey, callbackUrl));
		}

		StringBuffer normalizedUrl = new StringBuffer();
		String signature = generateSignature(aUrl, customSecrect, tokenSecrect,
				httpMethod, parameters, normalizedUrl, queryString);

		queryString.append("&oauth_signature=");
		queryString.append(encode(signature));

		return normalizedUrl.toString();
	}