C#/.NET/.NET Core应用程序编程开发中如何将多个参数创建/拼接成Url链接地址的查询参数字符串呢?
3.31K 次浏览
在C#/.NET/.NET Core应用程序编程开发中,如果要向远程服务发起HTTP请求,我们首先得将需要的请求参数进行组合,即把参数或者参数集合转换成URL查询字符串,但是在组合这些参数/参数集合的时候又会遇到很多问题,比如向参数字符串追加?
或者&
符号,如果是第一个参数,那么又不需要加&
,还要考虑字符编码等等很多细节需要注意并处理,比如:
StringBuilder SB = new StringBuilder();
if (NeedsToAddParameter A)
{
SB.Append("A="); SB.Append(HttpUtility.UrlEncode("TheValueOfA"));
}
if (NeedsToAddParameter B)
{
if (SB.Length>0) SB.Append("&");
SB.Append("B="); SB.Append(HttpUtility.UrlEncode("TheValueOfB")); }
}
那么有没有一些好的或者是通用的将参数/参数集合转换成URL查询字符串的方法或者类库呢?
4 个回答
-
调用
System.Web.HttpUtility.ParseQueryString(string.Empty)
方法创建一个HttpValueCollection
实例(其实也是一个NaveValueCollection
实例),然后再调用NaveValueCollection
的Add()
方法向其中添加参数,最后调用ToString()
方法即可得到URL编码后的查询参数字符串,如下:如果是在.NET Core的应用程序中,请使用
Microsoft.AspNetCore.WebUtilities.QueryHelpers
类,示例如下:关于更多使用请参考:https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.webutilities.queryhelpers