2 Stimmen

Wie man den Twitter-Benutzerzeitplan mit Mono abruft?

Ich verwende Bobbys Antwort, um die Benutzer-Timeline von Twitter abzurufen. Der Code ist sehr einfach zu verstehen, und ich habe es unter Windows/.NET 4.5 ausprobiert, es funktioniert sehr gut.

Aber wenn ich versuche, genau den gleichen Code auf Ubuntu/Mono 2.10 auszuführen, wird eine Ausnahme geworfen:

System.Net.WebException wurde ausgelöst
Fehler beim Abrufen des Antwortstreams (Schreiben: Die Authentifizierung oder Entschlüsselung ist fehlgeschlagen.): SendFailure

Es scheint, dass Mono keinen OAuth-Header an den HTTP-Request anhängen kann. Gibt es also einen guten Ansatz, um die Twitter-Benutzer-Timeline mit Mono abzurufen?

Hier ist der StackTrace:

System.Net.WebException: Fehler beim Abrufen des Antwortstreams (Schreiben: Die Authentifizierung oder Entschlüsselung ist fehlgeschlagen.): SendFailure ---> System.Exception: Die Authentifizierung oder Entschlüsselung ist fehlgeschlagen. ---> System.Exception: Vom Server wurde ein ungültiges Zertifikat empfangen. Fehlercode: 0xffffffff800b010a
  bei Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.validateCertificates (Mono.Security.X509.X509CertificateCollection certificates) [0x00000] in :0
  bei Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.ProcessAsTls1 () [0x00000] in :0
  bei Mono.Security.Protocol.Tls.Handshake.HandshakeMessage.Process () [0x00000] in :0
  bei (wrapper remoting-invoke-with-check) Mono.Security.Protocol.Tls.Handshake.HandshakeMessage:Process ()
  bei Mono.Security.Protocol.Tls.ClientRecordProtocol.ProcessHandshakeMessage (Mono.Security.Protocol.Tls.TlsStream handMsg) [0x00000] in :0
  bei Mono.Security.Protocol.Tls.RecordProtocol.InternalReceiveRecordCallback (IAsyncResult asyncResult) [0x00000] in :0
  --- Ende der inneren Ausnahmestapelüberwachung ---
  bei Mono.Security.Protocol.Tls.SslStreamBase.AsyncHandshakeCallback (IAsyncResult asyncResult) [0x00000] in :0
  --- Ende der inneren Ausnahmestapelüberwachung ---
  bei System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult) [0x00000] in :0
  bei System.Net.HttpWebRequest.GetResponse () [0x00000] in :0
  bei test1.MainClass.Main (System.String[] args) [0x00207] in /home/jerry/test1/test1/Main.cs:89

0voto

Okay, hier ist meine endgültige Lösung, importiere SSL-Zertifikate:

mozroots --import --ask-remove

Es hat mein Problem gelöst.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X