【问题标题】:Get argument value from string input从字符串输入中获取参数值
【发布时间】:2026-01-19 10:15:02
【问题描述】:

如何创建一个类方法来从字符串输入中获取参数?

字符串值GetArugmentValueByName(字符串输入,字符串名称)

示例

myInput="code=4/P7q7W91a-oMsCeLvIaQm6bTrgtp6&
client_id=21302922996.apps.googleusercontent.com&
client_secret=XTHhXh1SlUNgvyWGwDk1EjXB&
redirect_uri=https://www.example.com/back&
grant_type=authorization_code";

如果我这样做

string myGrantType = GetArugmentValueByName(myInput, "grant_type");

myGrantType 的值应该等于“authorization_code”

【问题讨论】:

    标签: c# web-services string arguments restful-authentication


    【解决方案1】:

    您可以使用ParseQueryString 将参数解析为名称值集合,然后为您要查找的参数编制索引。

    public string GetArgumentValueByName(string queryString, string paramName)
    {
        var paramCol = HttpUtility.ParseQueryString(queryString);
        return paramCol[paramName] ?? string.Empty;        
    }
    

    【讨论】:

    • 修改了我的代码,如果使用不存在的键对其进行索引,NameValueCollection 将返回 null。所以不需要先检查键集来判断 paramName 是否存在。