如何从android模拟器访问localhost?

2024-02-02

我正在通过本教程学习 Xamarin -。如果用邮递员发送请求,一切正常。但如果我想使用 android 模拟器,它就不起作用。而且我无法使用 UWP,因为必须启用开发人员模式,而且我在公司计算机上没有管理员权限。我在我的私人计算机上启用了开发人员模式,它可以在 UWP 上运行,但不能在 Android 模拟器上运行。在教程中使用的是UWP,那家伙说对于android模拟器需要一些配置,但他没有透露任何细节。

我读了很多文章,问题似乎出在我的后端(在本地主机上运行)和 android 模拟器之间的连接。 android 模拟器是一台单独的机器试图调用我的本地主机,这是否正确?我尝试将 localhost 更改为 127.0.0.1 或 10.0.2.2,并尝试了以下所有选项本文 https://developer.android.com/studio/run/emulator-networking。但它不起作用。

我说的对吗 localhost 必须改变?如果是的话,在哪里?还是其他地方有问题?

API服务注册方法:

    public async Task<bool> RegisterAsync(string email, string password, string confirmPassword)
    {

        try
        {
            System.Diagnostics.Debug.WriteLine("Email: " + email);
            var client = new HttpClient();

            var model = new RegisterBindingModel
            {
                Email = email,
                Password = password,
                ConfirmPassword = confirmPassword
            };
            var json = JsonConvert.SerializeObject(model);

            HttpContent content = new StringContent(json);
            content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
            var response = await client.PostAsync("http://localhost:49205/api/Account/Register", content); 

            if (response.IsSuccessStatusCode)
            {
                return true;
            }

            return false;
        }
        catch(Exception e)
        {
            System.Diagnostics.Debug.WriteLine("Error: " + e);
            throw;
        }
   }

如果我使用本地主机,则例外:

{System.Net.Http.HttpRequestException: An error occurred while sending the request ---> System.Net.WebException: Error: ConnectFailure (Connection refused) ---> System.Net.Sockets.SocketException: Connection refused
at System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP) [0x000b6] in <bcdc1df2b3724ab69797f3819a126346>:0 
at System.Net.WebConnection.Connect (System.Net.HttpWebRequest request) [0x0016d] in <bcdc1df2b3724ab69797f3819a126346>:0 --- End of inner exception stack trace ---
at System.Net.HttpWebRequest.EndGetRequestStream (System.IAsyncResult asyncResult) [0x0003a] in <bcdc1df2b3724ab69797f3819a126346>:0 
at System.Threading.Tasks.TaskFactory`1[TResult].FromAsyncCoreLogic (System.IAsyncResult iar, System.Func`2[T,TResult] endFunction, System.Action`1[T] endAction, System.Threading.Tasks.Task`1[TResult] promise, System.Boolean requiresSynchronization) [0x0000f] in <fcbf47a04b2e4d90beafbae627e1fca4>:0 

如果我使用 10.0.2.2,则请求错误:

{StatusCode: 400, ReasonPhrase: 'Bad Request', Version: 1.1, Content: System.Net.Http.StreamContent, 

Headers: {Server: Microsoft-HTTPAPI/2.0 Date: Thu, 17 May 2018 09:08:41 GMT Connection: close Content-Type: text/html; charset=us-ascii Content-Length: 334 }}

localhost指的是你的本地机器。人们普遍错误地认为 Android 模拟器(或 iOS)也是 Android 模拟器的一部分。localhost因为它在同一台机器上运行。但事实并非如此。

模拟器作为设备中的设备运行,并模仿物理设备的工作方式。它有自己的 IP 地址,无法访问您的localhost环回地址。您的应用程序作为另一台计算机(即 te 模拟器)上的应用程序运行。使用 UWP 时会有点混乱,因为does作为应用程序在本地计算机上运行。

这就是为什么您必须使用托管服务器应用程序的计算机的网络地址。该地址通常以192.168.x.x or 10.x.x.x并可以在您机器的网络设置中找到。

看来你已经发现了这一点。当使用10.0.2.2地址您收到 HTTP 400。这意味着您的请求中的某些内容不正确,但您可以从中得出结论,实际上可以访问服务器应用程序。但请求的内容会导致您的服务器应用程序出现问题。由于您没有提供任何代码/Account/Register端点不可能知道那里发生了什么。在服务器代码中放置一个断点,重试请求并尝试查看触发 HTTP 400 的原因。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从android模拟器访问localhost? 的相关文章

  • 如何从代码中隐藏 div (c#)

    我的页面上有一个 div 元素 我希望根据代码隐藏中的会话值显示 隐藏该元素 我怎样才能做到这一点 给div runat server and an id你可以在你的code behind div 在后面的代码中 theDiv Visibl
  • 如何获取 Visual Studio 的“发布”功能以包含生成后事件中的文件?

    我目前正在尝试使用 Visual Studio 2010 发布 和 MSDeploy 功能来处理我的 Web 部署需求 但在根据我的构建配置自定义包方面遇到了障碍 我在 32 位环境中开发 但需要为 64 位环境创建发布包 因此在 发布 配
  • 使用 Lambda 表达式从字段名称中选择不同的字段

    我需要从数据库表中获取两个字段 使用 linq to sql 检索 一个字段是日期时间 并且是固定字段 另一个字段始终是十进制 但该字段可以不同 该表保存的货币数据每天以不同的货币处理两次 因此可能具有 AM USD PM USD AM E
  • 将 TableCell 文本转换为超链接

    我正在将 sql 查询中的数据提取到页面后面的 cs 代码中的 asp 表中 TableCell tCell1 new TableCell tCell1 Text myDataRow tid ToString 我想将其转换为超链接 我怎样才
  • 当我想要发布项目时:“指定的路径、文件名或两者都太长”

    当我想运行或发布网络项目时 我收到此错误 严重性代码 说明 项目文件行抑制状态 错误 无法评估项目元数据 FullPath 项目元数据 FullPath 无法应用于路径 jquery ui 1 10 3 custom development
  • 每次使用会话来获取/设置对象属性

    我尝试搜索这个 但我什至不知道如何用它来搜索 我试图做的是有一个类 每次我访问它来更改它时 我实际上都是从会话中获取和设置值 这是我正在尝试做的事情 到目前为止我所做的事情 public class example public int p
  • 使用具有外键的表将数据从 asp.net 页面插入到我的数据库中

    我是一名初学asp net程序员 我的项目是网上购物课程 我有一些问题 我有 4 个表 它们之间有一些外键 CREATE TABLE dbo orderdetails orderid INT NOT NULL classid INT NOT
  • 在 Asp.Net 中以编程方式添加样式表

    我想以编程方式在头部添加样式表 但我看到的示例之一似乎需要多行代码才能添加一个样式表 即使我可能需要很多 示例代码 HtmlLink css new HtmlLink css Href css fancyforms css css Attr
  • 如何使用Dot net core WEB API实现文件上传?

    我正在开发 ASP DOT NET core Web api 我需要发送多个附件 我尝试如下
  • MediaPlayereekTo 从头开始​​播放歌曲不一致

    我正在使用 Android 的 MediaPlayer 类从某个偏移位置开始播放歌曲 在代码中指定此偏移量后 我播放歌曲 希望从该偏移位置听到它 但我听到它从头开始播放 请注意以下代码 MediaPlayer mplayer new Med
  • 如何发送电子邮件而不进入垃圾邮件

    MailAddress mailFrom new MailAddress email protected cdn cgi l email protection MailAddress mailTo new MailAddress email
  • mvc 2中的图像上传和预览

    我正在通过转换 asp net 网站来学习 mvc 2 在我的页面中 我必须上传图像并显示图像的预览 下面给出了我的 asp net 页面的屏幕截图 我将模型创建为 public class Contest public int conte
  • 使用 SendMessage 通过电子邮件发送文件附件而不保存文件

    我可以发送电子邮件和所有内容 但无法创建有效的 Attachment 放入我的电子邮件中 我在网上找到的所有示例都假设它以某种方式保存在我的计算机本地并通过路径链接它 但事实并非如此 在我的方法中 我使用 Winnovative 创建文件
  • asp.net mvc 它能处理所有请求吗? - iis 7集成模式

    我有一个使用 asp net mvc 构建的网站 在 IIS 7 上使用集成模式运行 我注意到 当我输入 mysite com test html 时 我得到了 The IControllerFactory did not return a
  • AutoMapper.Mapper 不包含 CreateMap 的定义

    这可能是一个基本问题 但想知道我没有得到 AutoMapper Mapper CreateMap 方法 我使用了错误的 AutoMapper 参考 包吗 谢谢 静态版本CreateMap方法在 4 2 中已弃用 然后在版本 5 0 中从 A
  • 本地主机上的 .net HTTP_X_FORWARDED_FOR NULL

    抱歉 如果其他地方已经回答了这个问题 我找不到它 如果没有 我会尝试查找访问过该站点的机器的原始 IP 根据我的基本理解 变量HTTP X FORWARDED FOR无论代理和其他过滤器如何 都会显示用户的 IP 如果这是真的 我正在尝试对
  • 同一服务器上的多个.NET版本

    所以我一直都知道在一台计算机 客户端或服务器 上运行多个版本的 NET 框架是可以的 这个问题 https stackoverflow com questions 407306 running many versions of net on
  • 如何从 Web API 应用程序返回 PDF

    我有一个在服务器上运行的 Web API 项目 它应该从两种不同类型的源返回 PDF 实际的可移植文档文件 PDF 和存储在数据库中的 base64 字符串 我遇到的问题是将文档发送回客户端 MVC 应用程序 剩下的部分是关于所发生的一切以
  • 使用实体框架重叠约会

    我将 asp net mvc 与实体框架一起使用 我有一个包含 startat 字段 endat 字段和 roomid 字段 称为 SpaceConfigurationId 的约会列表 并且希望查找给定房间已重复预订的约会列表 可以假设 e
  • 表单身份验证 web.config 设置

    根 web config 文件中的此规范是否正确 我没有在受保护的文件夹中使用子 web config

随机推荐

  • 文本查看字幕

    我想在主屏幕上放置一个textView 并且我需要跑马灯效果 public class MainWidget extends AppWidgetProvider int a RemoteViews remoteViews AppWidget
  • 更新 MKannotation 图像而不闪烁

    我想每 5 秒更新一次地图视图上的一些注释的图像 但是我不想将它们删除并重新添加到地图中 因为这会导致它们 闪烁 或刷新 即消失然后重新出现 我希望它是无缝的 我尝试过以下方法 get the current icon UserAnnota
  • Ruby 日期格式验证

    如何验证日期 2016 01 01 的格式是否正确 Y m d 例如我想得到true or false日期格式是否正确 伪代码 if 2016 01 01 Y m d puts date is valid else puts date is
  • 如何在 UPDATE 子句中使用 ROW_NUMBER()? [复制]

    这个问题在这里已经有答案了 ROW NUMBER 仅适用于SELECT中的条款MS SQL Server 但我想用它进行更新 如下所示 Update MyTab Set MyNo 123 ROW NUMBER over Order By I
  • Z80 ASM BNF 结构...我走在正确的轨道上吗?

    我正在尝试学习 BNF 并尝试汇编一些 Z80 ASM 代码 由于我对这两个领域都是新手 我的问题是 我是否走在正确的道路上 我正在尝试将 Z80 ASM 的格式编写为 EBNF 以便我可以弄清楚从那里到哪里从源代码创建机器代码 目前我有以
  • Express - POST 和 PUT 上的 400 个错误请求

    我需要一些帮助 因为我是 Node js 和 Express 的新手 我正在 Postman 上测试以下代码 const Joi require hapi joi const bodyParser require body parser L
  • OS X - 谁能解释为什么我在安装 ipython3 后在 .pythonrc.py 文件中遇到操作系统错误,或者给我一个比这更强大的解决方案?

    我使用 pip3 安装了 ipython3 pip3 install ipython all 当我运行 python 时 我的 pythonrc py 文件遇到错误 仅在 Python 3 上 不在 Python 2 上 Python 3
  • 对每列的单行进行采样,其中存在大量缺失数据

    作为我的数据框的示例 我将其称为df1 我的 GROUP1 包含三行数据 GROUP2 包含两行数据 我有三个变量 X1 X2 和 X3 GROUP X1 X2 X3 GROUP1 A NA NA GROUP1 NA NA T GROUP1
  • 嵌套“if”-“else”语句

    我的代码非常混乱if else如果检查它正在做什么 分支和嵌套分支的数量相当大 超过 20 个 if else if 和嵌套 它使我的代码更难阅读 并且可能会消耗性能 我的应用程序检查从用户那里获得的许多条件 因此应用程序必须始终检查不同的
  • Xamarin 上的空白屏幕

    我有一个 Xamarin 便携式项目 我调试的 Xaml 页面完全是空白的 我在 Android 和 IOS 上都看不到页面上的任何组件 我怎样才能解决这个问题 Note 它没有收到任何错误消息 页面正在打开 但我看不到任何内容 问题发生在
  • Oracle.Dataaccess 位于 GAC 中。我可以控制我使用的版本吗?

    我有一个使用 Oracle DataAccess ODP NET 的 XCOPY 可部署 NET 应用程序 我们还在应用程序目录中部署 Oracle Instant 客户端 一切正常 但我担心 来自 Oracle ODP NET 常见问题解
  • 实体框架 5 - 从实体迁移和创建表

    我正在使用 Entity Framework 5 RC 并且我有一些代码需要数据库上的特定表 该实体已使用 Code First 创建 a 如果数据库中尚未创建表 是否有办法告诉 EF 创建该表 如果是的话 怎么办 b 另外 如果表已经存在
  • Intellij IDEA插件中将虚拟文件同步到物理文件

    我正在实现 Intellij IDEA 插件 该插件需要在执行操作之前保存文件 Action是shell命令 它需要将文件名作为命令行参数传递 AFAIK Idea 在框架停用时保存 同步 文件 因此如果我右键单击该文件 然后单击我的操作
  • 如何在 Ansible 中打破循环?

    想要在 item 的值变为 7 后中断任务 这里是示例任务 hosts localhost tasks shell echo item register result with sequence start 4 end 16 when it
  • 检索 Instagram 图像 - 获取访问被拒绝消息

    创建了一个应用程序来从 Twitter 休息提要中检索 Instagram 图像 正常情况下它可以工作 但偶尔会收到来自 Instagram CDN 的 访问被拒绝 消息 例如 http distilleryimage2 s3 amazon
  • Rails 3.1 活动记录插入或更新

    我是铁路新手 活动记录中是否有一种简单的方法可以向其传递数据散列 如果记录存在 则更新它 如果不存在 则创建它 data data my id 356345 data description test123 w Descriptions n
  • 是否可以在 Mono 上运行 ASP.NET MVC 3 应用程序?

    我需要在 Linux 运行服务器上运行一些 MVC 3 应用程序 似乎唯一的选择是 Mono 该网站仅讨论 Web 服务 但我想知道运行整个 MVC 3 应用程序也是可能的吗 谢谢 这取决于 整个 mvc 3 应用程序 的含义 ASP Ne
  • nhibernate queryover LIKE 与表达式树

    我希望向我的基本存储库类添加一个方法 该方法允许我使用LIKE表达式 但我不太确定如何去做 我想创建一个通用方法 它查看传入的表达式树并在传入的字符串值中查找通配符 然后它将生成QueryOver相应声明 我目前有以下内容 public I
  • (新格式)Visual Studio 项目中的可选 appsettings.local.json

    我的应用程序使用 appsettings json 进行某些设置 如果 appsettings local json 存在 则应覆盖 appsettings json 中包含的任何设置 到目前为止 没有问题 但我使用 git 进行版本控制
  • 如何从android模拟器访问localhost?

    我正在通过本教程学习 Xamarin 如果用邮递员发送请求 一切正常 但如果我想使用 android 模拟器 它就不起作用 而且我无法使用 UWP 因为必须启用开发人员模式 而且我在公司计算机上没有管理员权限 我在我的私人计算机上启用了开发