C#HttpWebRequest传递对象作为后期数据参数

时间:2017-05-28 16:01:00

标签: c# asp.net-mvc serialization httpwebrequest

我正在向一些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(泛型类)序列化为查询参数

0 个答案:

没有答案