我希望能够修改c#HttpWebRequest对象的RequestUri中包含的url。 我想附加一个带票证ID的附加参数。 [比如& ticket = xyz123]
听起来这可能无法做到这一点,因为RequestUri是只读的。有些人建议使用反射来绕过它,但也有人说,即使你使用反射它也不会起作用。
还有其他方法可以解决这个问题吗?
我是否可以使用HttpWebRequest CookieContainer来包含故障单信息 - 虽然故障单不在cookie中,但是需要一个特殊的服务调用来检索故障单字符串。
我试图覆盖身份验证方法,如下所示:
protected override void HttpAuthenticate(HttpWebRequest request)
{
Uri uri = request.RequestUri;
Uri newUrl = new Uri(AuthData.appendTicket(uri.ToString()));
request.RequestUri = newUrl; // Cannot do this because it is readonly
答案 0 :(得分:1)
如果有足够的反射黑客攻击,你可能会强制它,但这违背了类的基本架构模型:WebRequest的URL应该在创建时修复。如果你想向一个不同但相关的URL发出请求,为什么不使用WebRequest.Create创建一个新的HttpWebRequest来创建一个新的URL,这个URL是通过摆弄原始WebRequest的RequestUri而形成的?