C# 如何使用Mono获取twitter用户时间线?

C# 如何使用Mono获取twitter用户时间线?,c#,twitter,mono,C#,Twitter,Mono,我用来获取Twitter的用户时间线,代码非常简单易懂,我在Windows/.NET4.5下尝试过,效果非常好 但当我试图在Ubuntu/Mono 2.10上运行完全相同的代码时,它抛出了一个异常: System.Net.WebException has been thrown Error getting response stream (Write: The authentication or decryption has failed.): SendFailur Mono似乎无法将OAut

我用来获取Twitter的用户时间线,代码非常简单易懂,我在Windows/.NET4.5下尝试过,效果非常好

但当我试图在Ubuntu/Mono 2.10上运行完全相同的代码时,它抛出了一个异常:

System.Net.WebException has been thrown
Error getting response stream (Write: The authentication or decryption has failed.): SendFailur
Mono似乎无法将OAuth头添加到http请求中,那么有什么好方法可以使用Mono获取twitter用户时间线呢

这是StackTrace:

System.Net.WebException: Error getting response stream (Write: The authentication or decryption has failed.): SendFailure ---> System.Exception: The authentication or decryption has failed. ---> System.Exception: Invalid certificate received from server. Error code: 0xffffffff800b010a
  at Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.validateCertificates (Mono.Security.X509.X509CertificateCollection certificates) [0x00000] in <filename unknown>:0
  at Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.ProcessAsTls1 () [0x00000] in <filename unknown>:0
  at Mono.Security.Protocol.Tls.Handshake.HandshakeMessage.Process () [0x00000] in <filename unknown>:0
  at (wrapper remoting-invoke-with-check) Mono.Security.Protocol.Tls.Handshake.HandshakeMessage:Process ()
  at Mono.Security.Protocol.Tls.ClientRecordProtocol.ProcessHandshakeMessage (Mono.Security.Protocol.Tls.TlsStream handMsg) [0x00000] in <filename unknown>:0
  at Mono.Security.Protocol.Tls.RecordProtocol.InternalReceiveRecordCallback (IAsyncResult asyncResult) [0x00000] in <filename unknown>:0
  --- End of inner exception stack trace ---
  at Mono.Security.Protocol.Tls.SslStreamBase.AsyncHandshakeCallback (IAsyncResult asyncResult) [0x00000] in <filename unknown>:0
  --- End of inner exception stack trace ---
  at System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult) [0x00000] in <filename unknown>:0
  at System.Net.HttpWebRequest.GetResponse () [0x00000] in <filename unknown>:0
  at test1.MainClass.Main (System.String[] args) [0x00207] in /home/jerry/test1/test1/Main.cs:89
System.Net.WebException:获取响应流时出错(写入:身份验证或解密失败。):SendFailure-->System.Exception:身份验证或解密失败。-->系统异常:从服务器接收到无效证书。错误代码:0xFFFF800B010A
位于:0中的Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.validateCertificates(Mono.Security.X509.X509CertificateCollection certificates)[0x00000]
位于:0中的Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.ProcessAsTls1()[0x00000]
位于:0中的Mono.Security.Protocol.Tls.Handshake.HandshakeMessage.Process()[0x00000]
at(带检查的包装器远程调用)Mono.Security.Protocol.Tls.Handshake.HandshakeMessage:Process()
位于:0中的Mono.Security.Protocol.Tls.ClientRecordProtocol.ProcessHandshakeMessage(Mono.Security.Protocol.Tls.TlsStream handMsg)[0x00000]处
位于:0中的Mono.Security.Protocol.Tls.RecordProtocol.InternalReceiveRecordCallback(IAsyncResult asyncResult)[0x00000]处
---内部异常堆栈跟踪的结束---
在:0中的Mono.Security.Protocol.Tls.SslStreamBase.asynchHandshakeCallback(IAsyncResult asyncResult)[0x00000]处
---内部异常堆栈跟踪的结束---
0中的System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)[0x00000]处
位于:0中的System.Net.HttpWebRequest.GetResponse()[0x00000]
在/home/jerry/test1/test1/Main.cs:89中的test1.MainClass.Main(System.String[]args)[0x00207]处

好的,这是我的最终解决方案,导入SSL证书:

mozroots --import --ask-remove

它解决了我的问题。

你看过博比回答后的帖子了吗?基本上可以在这里看到公认的答案