我正在向一些api服务发送HttpWebRequest(post)。
这是一个代码示例: 这是后期数据参数:
var postData = new Dictionary<string, string>
{
{
"OtherBankNames",
dto.OtherBankNames
},
{
"AccountOpeningMainReasonId",
dto.AccountOpeningMainReasonId?.ToString()
},
{
"ActivityCategoryId",
dto.ActivityCategoryId?.ToString()
},
{
"ActivitySubCategoryId",
dto.ActivitySubCategoryId?.ToString()
},
{
"AnnualTurnoverSalaryRateId",
dto.AnnualTurnoverSalaryRateId?.ToString()
},
...
dto
只是一个班级ChatInfoDto
。
数据正确传递如下:
OtherBankNames=value&AccountOpeningMainReasonId=value... etc.
我有一个帮助方法可以将postData
字典转换为查询参数:
public static string BuildPostTPayload(Dictionary<string, string> keyValuePairs)
{
if (keyValuePairs.Count == 0)
return null;
var temp = keyValuePairs.Select(x => x.Key + "=" + System.Web.HttpUtility.UrlEncode(x.Value));
var result = string.Join("&", temp);
return result;
}
一切正常,我只是很想知道:是否可以将对象序列化为post params而不是像在Dictionary案例中那样手动编写每个属性?
所以我需要的是一个魔术方法,它将整个T(泛型类)序列化为查询参数