C#中Twitterizer2的代理身份验证

时间:2011-07-26 17:08:40

标签: c# twitter twitterizer

目前我用来更新推特状态的代码如下......

public static void SendMessage(string message)
    {
        try
        {
            tokens = new OAuthTokens();
            tokens.AccessToken = "Some Token";
            tokens.AccessTokenSecret = "Some Secret";
            tokens.ConsumerKey = "Some Key";
            tokens.ConsumerSecret = "Some CSecret";    

           TwitterResponse<TwitterStatus> tweetResponse = TwitterStatus.Update(tokens, message);

        }

请用勺子告诉我如何在10.0.0.21和端口3128上验证自己是否需要用户名和密码。

我可以使用以下代码访问网络并从C#应用程序下载网页,但由于此问题,我无法从twitterizer更新Twitter ...

            WebClient w = new WebClient();

            WebProxy p = new WebProxy("10.0.0.21", 3128);

            p.Credentials = new NetworkCredential("UserName", "Password");

            w.Proxy = p;

            string s = w.DownloadString(SomeUrl);

如何在twitterizer2包中做同样的事情......?它没有从IE中获取,因为此代理需要身份验证。

我不确定如何修改配置文件。还有一个问题是我不会总是在代理服务器后面运行这个应用程序。它通常会在代理服务器之外运行。

请帮忙。感谢。

1 个答案:

答案 0 :(得分:2)

Twitterizer以3种方式处理代理设置。它们是,Twitterizer选择使用哪个:

  1. 每个方法都有一个可选的参数参数。它们都基于具有代理属性的单个类,该属性允许您提供与示例中完全相同的Web代理。如果你有少量的Twitter集成,这很好,但显然不适合大型应用程序。
  2. 您可以使用<defaultproxy>元素在配置文件中指定代理。适用于整个应用程序,但遗憾的是无法处理身份验证的使用。
  3. 使用默认的IE设置。
  4. 由于您的代理需要身份验证,因此唯一的选择是为每个方法指定可选的属性类。

    例如:

    public static void SendMessage(string message)
    {
        try
        {
            tokens = new OAuthTokens();
            tokens.AccessToken = "Some Token";
            tokens.AccessTokenSecret = "Some Secret";
            tokens.ConsumerKey = "Some Key";
            tokens.ConsumerSecret = "Some CSecret";    
    
            WebProxy p = new WebProxy("10.0.0.21", 3128);
            p.Credentials = new NetworkCredential("UserName", "Password");
    
            StatusUpdateOptions options = new StatusUpdateOptions();
            options.Proxy = p;
    
           TwitterResponse<TwitterStatus> tweetResponse = TwitterStatus.Update(tokens, message, options);
    
        }
    }