簡體   English   中英

向WebClient發出的所有請求添加querystring參數

[英]Adding a querystring parameter to all request made by a WebClient

我擴展了WebClient類並重寫了GetWebRequest方法。 有什么方法可以在此方法中向我的所有請求添加querystring參數?

protected override WebRequest GetWebRequest(Uri address)
{
    WebRequest request = base.GetWebRequest(address);

    HttpWebRequest webRequest = request as HttpWebRequest;

    if (webRequest != null)
    {

    }
}

我嘗試修改address但似乎無濟於事。 而且webRequest.Address沒有設置器。

我嘗試了您的示例,並能夠通過將新的Uri傳遞給base.GetWebRequest()來修改GetWebRequest方法中的地址:

public class CustomWebClient : WebClient
{
    protected override WebRequest GetWebRequest(Uri address)
    {
        var newUrl = address.OriginalString;

        if (newUrl.Contains("?"))
            newUrl += "&";
        else
            newUrl += "?";

        newUrl += "MyCustomParam=value";


        return base.GetWebRequest(new Uri(newUrl));
    }
}

然后,如果我調用new CustomWebClient().DownloadData("http://stackoverflow.com")則實際網址(如提琴手所見)為https://stackoverflow.com/?MyCustomParam=value

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM