我在VS 2015项目中有一个基本的RESTful服务实现。我刚刚开始学习Xamarin表单(在VS 2019中),并且试图验证我是否可以使用Android仿真器中的服务。
在调试模式下运行服务时,可以使用“ http://localhost:49826/api/values/2”并成功从服务中获取数据。
但是,当我然后在Xamarin项目中使用相同的东西时:
_client = new HttpClient(); _client.GetAsync(“ http://localhost:49826/api/values”);
我收到以下错误:
{System.Net.WebException:无法连接到localhost / 127.0.0.1:49826 ---> Java.Net.ConnectException:无法连接到localhost / 127.0.0.1:49826
以下是我在这里找到的信息:https://docs.microsoft.com/en-us/xamarin/cross-platform/deploy-test/connect-to-local-web-services,我将通话更改为:
_client.GetAsync(“ http://10.0.2.2:49826/api/values”);
{Newtonsoft.Json.JsonReaderException:解析值:<时遇到意外字符。路径”,第0行,位置0。
使用“ https://jsonplaceholder.typicode.com/posts”可以使客户端调用正常运行,而从浏览器中调用该服务也可以正常运行,但是当我尝试连接它们时缺少某些内容。有什么想法吗?
答案 0 :(得分:0)
如果仍然无法访问本地终结点,请尝试从IIS Express切换到Windows上可用的完整IIS。过去这对我有用。我知道IIS Express处理传入流量的方式与IIS不同。
Windows:开始->搜索:Windows功能->打开或关闭Windows功能->启用Internet信息服务。
这时,请导航至localhost,以确保您看到IIS登陆页面。
Visual Studio(在Web项目中)->项目-> [ProjectName]属性...->调试->将启动从IIS Express切换到IIS。
请记住,如果您执行此操作以切换到您的项目,并在未启用IIS的计算机中打开该项目,则他们将无法打开它。因此,您必须根据需要将其切换回IIS Express。
答案 1 :(得分:0)
我有一个类似的问题,我这样解决了:
要确定您的IP地址,请转到cmd
,然后键入ipconfig
。选择您的IPv4地址。
答案 2 :(得分:0)
我在Xamarin with Visual Studio
上,需要从物理Android设备上在我的开发机上使用REST-API来遵循教程。
因此我安装了名为Conveyor by Keyoti的免费Visual Studio工具/插件。
在开发计算机上的Visual Studio中,WebApp / Rest-Api处于Debug
模式时,Conveyor为您提供了三种从另一台设备连接到应用程序的方法:
localhost
URL,与Visual Studio相同)因此,我激活了internet URL
选项,并通过我的数据计划成功地从Android手机访问了Rest-Api(如果您的设备位于同一本地网络上,则访问Remote URL
),但是您您必须先注册免费帐户才能使用Internet URL
选项,该选项将再几个月免费使用(根据撰写此评论时的网站)。
要在Visual Studio中安装Conveyor,请转到Tools >> Extensions and updates
,然后选择左侧的Online
选项,搜索并安装。您必须重新启动Visual Studio才能使安装生效。