>>Android URL链接生成函数


代码分享第四弹,URL生成函数。其实这真的是闲的蛋疼的需求才会用到的函数,将各种形式组织的数据做成带?和&的链接,闲的蛋疼才会用这个,正常都用POST来做,具体的方法可以看我前一篇文章 Android获取网页数据的方法总结 里面有POST的用法。一会儿会放出GET的方法,往下看就是了

对于几个没太大用处的类就不多说啥了,看官随便看看:

/**
 * @param params
 * @return
 */
public static String urlCombiner(Map<string , String> params) {
	if (params != null && !params.isEmpty()) {
		StringBuilder url = new StringBuilder();
		boolean first = true;
		for (String key : params.keySet()) {
			if (first) {
				first = false;
				url.append('?');
			}
			else {
				url.append('&');
			}
			url.append(key + '=' + params.get(key));
		}
		return url.toString();

	}
	return "";
}

/**
 * @param nameValuePairs
 * @return
 */
public static String urlCombiner(ArrayList<namevaluepair> nameValuePairs) {
	if (nameValuePairs != null && !nameValuePairs.isEmpty()) {
		StringBuilder url = new StringBuilder();
		int len = nameValuePairs.size();
		for (int i = 0; i < len; i++) {
			if (i == 0) {
				url.append('?');
			}
			else {
				url.append('&');
			}
			url.append(nameValuePairs.get(i).getName() + '=' + nameValuePairs.get(i).getValue());
		}
		return url.toString();
	}
	return "";
}

/**
 * @param params
 * @return
 */
public static String urlCombiner(Bundle params) {
	if (params == null)
		return "";
	StringBuilder sb = new StringBuilder();
	boolean first = true;
	for (String key : params.keySet()) {
		if (first) {
			first = false;
			sb.append("?");
		}
		else {
			sb.append("&");
		}
		sb.append(key + "=" + params.getString(key));
	}
	return sb.toString();
}

下面是GET的函数,随便看下,用的HTTPGET,里面就用了上面三个函数中的某个,见代码。

/**
 * @param nameValuePairs
 * @param url
 * @return
 */
public static InputStream doGet(ArrayList<namevaluepair> nameValuePairs, String url) {
	HttpClient httpclient = new DefaultHttpClient();
	try {
		String target = url + urlCombiner(nameValuePairs);
		HttpGet httpget = new HttpGet(target);
		HttpResponse response = httpclient.execute(httpget);
		if (response.getStatusLine().getStatusCode() == HttpURLConnection.HTTP_OK) {
			return response.getEntity().getContent();
		}
	} catch (Exception e) {
		e.printStackTrace();
	}/*finally {
		httpclient.getConnectionManager().shutdown();
	}*/
	return null;
}

此条目发表在 Java 分类目录,贴了 , , , , , , , 标签。将固定链接加入收藏夹。

相关日志:

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

注意: 评论者允许使用'@user:'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC:'(不包括单引号)将会自动将您的评论发送给ABC。请务必注意user必须和评论者名相匹配(大小写一致)。