【发布时间】:2019-06-06 08:04:43
【问题描述】:
我的 xamarin android 应用程序有问题。假设它每 5 分钟向服务器发送一次请求,经过 40-50 分钟后它会失败。
我使用 xamarin 的互联网连接插件来监听互联网断开连接,但它没有触发。
这里是异常堆栈跟踪:
failed to connect to from after 120000ms
at Java.Interop.JniEnvironment+InstanceMethods.CallVoidMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args) [0x00069] in <286213b9e14c442ba8d8d94cc9dbec8e>:0
at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeAbstractVoidMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x00014] in <286213b9e14c442ba8d8d94cc9dbec8e>:0
at Java.Net.HttpURLConnectionInvoker.Connect () [0x0000a] in <95d915721ad748108ff096dce8f8f32c>:0
at Xamarin.Android.Net.AndroidClientHandler+<>c__DisplayClass43_0.<ConnectAsync>b__0 () [0x0005a] in <95d915721ad748108ff096dce8f8f32c>:0
at System.Threading.Tasks.Task.InnerInvoke () [0x0000f] in <d4a23bbd2f544c30a48c44dd622ce09f>:0
at System.Threading.Tasks.Task.Execute () [0x00000] in <d4a23bbd2f544c30a48c44dd622ce09f>:0
--- End of stack trace from previous location where exception was thrown ---
at Xamarin.Android.Net.AndroidClientHandler+<DoProcessRequest>d__45.MoveNext () [0x0012e] in <95d915721ad748108ff096dce8f8f32c>:0
--- End of stack trace from previous location where exception was thrown ---
at Xamarin.Android.Net.AndroidClientHandler+<SendAsync>d__40.MoveNext () [0x00230] in <95d915721ad748108ff096dce8f8f32c>:0
--- End of stack trace from previous location where exception was thrown ---
at System.Net.Http.HttpClient+<SendAsyncWorker>d__49.MoveNext () [0x000ca] in <25ebe1083eaf4329b5adfdd5bbb7aa57>:0
--- End of stack trace from previous location where exception was thrown ---
at MyProject.Services.Helpers.HttpHelper+<GetAsync>d__20.MoveNext () [0x00066] in <a7ae1820966b4814b52c3da64fea6a88>:0
--- End of stack trace from previous location where exception was thrown ---
at MyProject.Services.Helpers.HttpHelper+<ExecuteGetAsync>d__14.MoveNext () [0x000f0] in <a7ae1820966b4814b52c3da64fea6a88>:0
--- End of stack trace from previous location where exception was thrown ---
at MyProject.Services.Helpers.HttpHelper+<Get>d__8`1[T].MoveNext () [0x00075] in <a7ae1820966b4814b52c3da64fea6a88>:0
--- End of stack trace from previous location where exception was thrown ---
at MyProject.Services.Providers.AuthenticationProvider+<IsTwoFactorAuthenticationEnabled>d__2.MoveNext () [0x00077] in <a7ae1820966b4814b52c3da64fea6a88>:0
--- End of stack trace from previous location where exception was thrown ---
at MyProject.Services.Services.AuthenticationService+<IsTwoFactorAuthenticationEnabled>d__7.MoveNext () [0x0006d] in <a7ae1820966b4814b52c3da64fea6a88>:0
--- End of stack trace from previous location where exception was thrown ---
at MyProject.Core.ViewModels.Base.BaseViewModel+<Execute>d__25`1[TOut].MoveNext () [0x000a2] in <8cda1c2cffb84419929f531e828b43bf>:0
--- End of managed Java.Net.SocketTimeoutException stack trace ---
java.net.SocketTimeoutException: failed to connect to after 120000ms
at libcore.io.IoBridge.connectErrno(IoBridge.java:185)
at libcore.io.IoBridge.connect(IoBridge.java:130)
at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:129)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:357)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:201)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:183)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
at java.net.Socket.connect(Socket.java:616)
at com.android.okhttp.internal.Platform.connectSocket(Platform.java:145)
at com.android.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:141)
at com.android.okhttp.internal.io.RealConnection.connect(RealConnection.java:112)
at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:184)
at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:126)
at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:95)
at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:281)
at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:224)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:461)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:127)
【问题讨论】:
标签: android http xamarin https httpclient