Flurl 本地主机连接被拒绝

问题描述 投票:0回答:1

我已将 Flurl 设置为在我的 Xamarin PCL 中运行,并且我正在调用在 MVC 应用程序中运行的 Web API。

Furl 似乎可以毫无问题地访问我部署的 API,但由于某种原因我无法在本地测试更改。

这就是我正在做的:

var data = await "http://localhost:60257/api/gigapi".GetJsonAsync<List<Gig>>();

我也尝试过简单的

GetAsync()
,但再次无济于事。

如有任何帮助,我们将不胜感激。

编辑:

更多信息,该项目是 Ionic 移动应用程序的重新开发。我已经在本地运行了 ionic 应用程序,并且能够毫无问题地访问我的本地 Web api,因此这不是防火墙问题或类似问题 - 这可能是我在 Flurl 中做错的事情。

编辑2:

这是例外:

e.Message“请求 http://localhost:60257/api/gigapi 失败。错误:ConnectFailure(连接被拒绝)”字符串

和堆栈跟踪:

StackTrace “位于 C:\projects lurl\src\Flurl.Http.Shared\Configuration\FlurlMessageHandler.cs:62 中的 Flurl.Http.Configuration.FlurlMessageHandler+d__1.MoveNext () [0x003ec] --- 从先前抛出异常的位置开始的堆栈跟踪结束 --- 在 Microsoft.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task 任务)[0x00042] 中 <1c7d529d87ec4bdcbde02e9494f3b5ae>:0 在 Microsoft.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess (System.Threading.Tasks.Task 任务)[0x0001c] 中 <1c7d529d87ec4bdcbde02e9494f3b5ae>:0 在 Microsoft.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task 任务)[0x00009] 中 <1c7d529d87ec4bdcbde02e9494f3b5ae>:0 在 Microsoft.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] 中 <1c7d529d87ec4bdcbde02e9494f3b5ae>:0 在 Flurl.Http.HttpResponseMessageExtensions+d__0`1[T].MoveNext () [0x00024] 在 C:\projects lurl\src\Flurl.Http.Shared\HttpResponseMessageExtensions.cs:26 --- 从先前抛出异常的位置开始的堆栈跟踪结束 --- 在 /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs 中的 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] :143 在 /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system 中的 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task 任务)[0x00047] /runtime/compilerservices/TaskAwaiter.cs:187 在 /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system 中的 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task 任务)[0x0002e] /runtime/compilerservices/TaskAwaiter.cs:156 在 /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system 中的 System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task 任务)[0x0000b] /runtime/compilerservices/TaskAwaiter.cs:128 在 /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/runtime/ 中的 System.Runtime.CompilerServices.TaskAwaiter`1[TResult].GetResult () [0x00000]编译器服务/TaskAwaiter.cs:357 在 C:\Users\Minneth\Documents\Projects\SarifForms\SarifForms\Login.xaml.cs 中的 SarifForms.Login+d__1.MoveNext () [0x00033] 处:31 ” string

最终更新:

答案发布在下面。

xamarin webapi flurl
1个回答
0
投票

确实有点明显,但我想我已经解决了这个问题。

我正在测试使用 Android 模拟器中的 Flurl 的 Xamarin 应用程序,因此 localhost 实际上是 Android 模拟器 - 不是在同一台计算机上运行的本地 Web api。

我相信我必须使用 10.0.2.2 的环回 IP。

它与我的 Ionic 应用程序配合使用的原因是因为我在浏览器中运行 Ionic 应用程序而不是 Andorid 模拟器。

希望这对某人有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.