GetResponse总是在Monodroid中提供异常。我正在使用Dropnet Dll

时间:2012-09-17 16:36:12

标签: xamarin.android

我正在研究Monodroid。我添加了一个Dropnet DLL(我在Monodevelop中编译了它)。

我正在尝试检索帐户信息,下面是我的代码

DropNetClient _client;
string dropbox_appkey = "XXX";
string dropbox_appsecret = "XXXX";
_client = new DropNetClient(dropbox_appkey, dropbox_appsecret);
_client.UserLogin = new DropNet.Models.UserLogin { Token = "XXX", Secret = "XXXX" };
var accountInfo = _client.AccountInfo();

执行以下代码时出现错误

return (HttpWebResponse)request.GetResponse();

收到的错误是:

  

System.Net.WebException:获取响应流时出错(写:The   验证或解密失败。):SendFailure --->   System.IO.IOException:身份验证或解密失败。   ---> Mono.Security.Protocol.Tls.TlsException:从服务器收到的证书无效。错误代码:0xffffffff800b010a at   Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.validateCertificates   (Mono.Security.X509.X509CertificateCollection证书)[0x00000]   in:0 at   Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.ProcessAsTls1   ()[0x00000] in:0 at   Mono.Security.Protocol.Tls.Handshake.HandshakeMessage.Process()   [0x00000] in:0 at   Mono.Security.Protocol.Tls.ClientRecordProtocol.ProcessHandshakeMessage   (Mono.Security.Protocol.Tls.TlsStream handMsg)[0x00000] in:0 at   Mono.Security.Protocol.Tls.RecordProtocol.InternalReceiveRecordCallback   (IAsyncResult asyncResult)[0x00000] in:0 ---   内部异常堆栈跟踪结束--- at   Mono.Security.Protocol.Tls.SslStreamBase.AsyncHandshakeCallback   (IAsyncResult asyncResult)[0x00000] in:0 ---   内部异常堆栈跟踪结束--- at   System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)   [0x00000] in:0 at   System.Net.HttpWebRequest.GetResponse()[0x00000] in:0 at RestSharp.Http.GetRawResponse   (System.Net.HttpWebRequest请求)[0x00002] in   E:\ sujit \发展\ try5 \ restsharp-RestSharp-eef0c86 \ RestSharp \ Http.Sync.cs:170

当我在浏览器中运行URL时,如下所示:

  

https://api.dropbox.com/1/account/info?oauth_consumer_key=XXXX&oauth_nonce=3064850&oauth_signature_method=PLAINTEXT&oauth_timestamp=1347899148&oauth_token=XXXX&oauth_version=1.0&oauth_signature=XXX%26XXX

我得到了这样的正确答案:

  

{“referral_link”:“https://www.dropbox.com/referrals/XXXX”,   “display_name”:“XXX XXX”,“uid”:XXXX,“country”:“IN”,“quota_info”:   {“共享”:XXX,“配额”:XXXX,“正常”:XXXX},“电子邮件”:   “XXXX@gmail.com”}

我的问题是为什么我使用Monodroid仿真器会出现奇怪的错误(我正在使用Monodevelop 版本3.0.4.6 ,而我正在 API_10 EMulator上进行测试

我该怎么办?

注意:

添加,使用通过在桌面应用程序中对其进行身份验证获得的dropbox的身份验证令牌来添加。我认为我们可以重用使用我们的桌面应用程序的用户的令牌用于移动应用程序。正确?

1 个答案:

答案 0 :(得分:1)

我使用RestSharp和Mono for Android有类似的问题。原因是开发环境的证书无效。我正在为域使用静态IP地址(192.168.1.122),以便我的手机可以连接到我的开发机器上的Web服务。您可以通过在发出Web请求之前在某处添加以下行来覆盖此项:

ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };