如何修改类库中的HttpRequest QueryString值

本文关键字:HttpRequest QueryString 类库 何修改 修改 | 更新日期: 2023-09-27 18:16:50

如何修改类库中的HttpRequest QueryString值,目前可以获取QueryString值并进行修改,但是如何将修改后的QueryString写入HttpRequest:

public static HttpRequest ModiQueryString(HttpRequest request)
{
    var nv = new NameValueCollection(request.QueryString);
    foreach (string key in nv.Keys)
    {
        nv[key] = "abc";
    }
    //here how to let request.QueryString equal nv
    return request;
}

因为请求。QueryString是只读的,所以我该怎么做?谁能帮我?由于

如果我创建一个新的HttpRequest,我可以使用:

StringBuilder newQuery=new StringBuilder();
foreach(string key in nv.Keys)
{
    newQuery.AppendFormat("{0}={1}",key,FilterKeyWord(nv[key]));
}
HttpRequest newRequest = new HttpRequest("", request.Url, newQuery.ToString());
return newRequest;

如何修改类库中的HttpRequest QueryString值

这是根本不可能的,因为QueryString是不可设置的,并且类是sealed来引导的。

您应该在构造请求之前修改查询字符串,或者如果您只有HttpRequest可以使用,那么保留查询字符串的临时副本(您可以编辑)并使用修改的查询字符串构造另一个HttpRequest