C# 为什么TweetSharp抛出异常?

C# 为什么TweetSharp抛出异常?,c#,exception,tweetsharp,C#,Exception,Tweetsharp,这是最基本的例子,它抛出了一个异常 // Pass your credentials to the service TwitterService service = new TwitterService(API_KEY,API_SECRET); service.UserAgent = "StackBot"; // Step 1 - Retrieve an OAuth Request Token OAuthRequestToken request = service.GetRequestToke

这是最基本的例子,它抛出了一个异常

// Pass your credentials to the service
TwitterService service = new TwitterService(API_KEY,API_SECRET);
service.UserAgent = "StackBot";

// Step 1 - Retrieve an OAuth Request Token
OAuthRequestToken request = service.GetRequestToken();

// Step 2 - Redirect to the OAuth Authorization URL
Uri uri = service.GetAuthorizationUri(request);
Console.WriteLine(uri.ToString());

// Step 3 - Exchange the Request Token for an Access Token
string verifier = "123456"; // <-- This is input into your application by your user
OAuthRequestToken requestToken = new OAuthRequestToken();
OAuthAccessToken access = service.GetAccessToken(requestToken, verifier);
//将您的凭据传递给服务
TwitterService服务=新的TwitterService(API_密钥,API_密钥);
service.UserAgent=“StackBot”;
//步骤1-检索OAuth请求令牌
OAuthRequestToken请求=service.GetRequestToken();
//步骤2-重定向到OAuth授权URL
Uri=service.GetAuthorizationUri(请求);
Console.WriteLine(uri.ToString());
//步骤3-将请求令牌交换为访问令牌

字符串验证程序=“123456”// 首先,您要创建一个新的'requestToken'变量,一个空变量,具有空值,然后尝试使用该变量获取访问令牌。您需要使用从对GetRequestToken的调用中实际收到的一个(您称之为'request')。

我也有同样的问题,我自己无法复制,但它会定期在服务器端与一些客户端发生。堆栈跟踪和错误描述与您得到的类似:

InnerException:值不能为null。参数名称:查询地址 System.Compat.Web.HttpUtility.ParseQueryString(字符串查询,编码 编码)在System.Compat.Web.HttpUtility.ParseQueryString(字符串 TweetSharp.TwitterService.GetRequestToken(字符串回调)上的查询)

我查看了TweetSharp代码,它现在可能有点过时了(2.3节)。请让我知道这个问题是否在新版本中得到了解决。这里似乎发生了错误:

    var response = _oauth.Request(request);
    SetResponse(response);
    var query = HttpUtility.ParseQueryString(response.Content);
无论出于何种原因,对twitter服务器的请求似乎失败了,但并没有检查response.Content是否为空。然后ParseQueryString抛出异常


我的解决方案就是忽略此错误,并允许用户重试。似乎网络错误、代理服务器或不稳定的连接可能会导致此错误。

好吧,我应该更清楚一点,但错误发生在第一次调用中:
OAuthRequestToken request=service.GetRequestToken()您还可以提供TweetSharp跟踪结果吗?我不能复制这个,但是我没有使用Ubuntu。看起来响应内容似乎是空的,这可能与Mono处理NetworkStream的方式有关
    var response = _oauth.Request(request);
    SetResponse(response);
    var query = HttpUtility.ParseQueryString(response.Content);