android - 从 xamarin Vs2015 android 模拟器连接到本地 Web 服务

标签 android xamarin

尝试从 Android 模拟器连接到我在本地主机上的 Web 服务时,我收到“连接被拒绝”或“错误请求”。我已将端口号添加到防火墙以允许连接,并且我已尝试给出的建议 here修改applicationhost.config

Web 服务和模拟器都在同一台 (Windows 10) PC 上运行。在服务器的 web.config 中,我在“system.webserver”下有以下内容:

 <httpProtocol>
 <customHeaders>
  <clear />
  <add name="Access-Control-Allow-Origin" value="*" />
   <add name="Access-Control-Allow-Headers" value="Content-Type" />
   <add name="Access-Control-Allow-Methods" value="GET, PUT, POST" />
 </customHeaders>
 </httpProtocol>

据我所知,模拟器可以找到 Web 服务器(我没有收到“未找到”错误),但服务器拒绝连接。

   using (WebClient client = new WebClient())
   {
     string json = ......;
     client.Headers[HttpRequestHeader.ContentType] = "application/json";
    //      I have also tried  "application/x-www-form-urlencoded";
    string result = client.UploadString(UrlBase.urlBase + "SaveLocation", json);

如果“UrlBase”是 http://192.168.1.73:60080/Service1.svc/ ,我收到“错误请求”,我知道这可能是由于 json 格式错误造成的。

如果“UrlBase”是远程服务器,连接有效(所以我知道 json 格式是正确的)。在远程和本地服务器上运行相同的更新 dll。

如果“UrlBase”是 http://localhost:60080/Service1.svc/ ,我收到异常“连接被拒绝”

最佳答案

我没有使用任何防火墙规则,因为我的模拟器与服务主机位于同一台机器上。正如杰森所说,你应该使用你的主机 IP 地址。 为避免许多问题,请使用本地 IIS 主机而不是 IIS express。您的“错误请求”不是无效的 Json,而是无效的主机名,因为 IIS express 将不允许任何连接,但来自本地计算机。您可以尝试在上面引用的链接中欺骗它,但何必呢?

这是 IIS Express 托管应用程序的结果。

enter image description here

这是本地 IIS 托管应用程序的结果

enter image description here

这里拿到项目后就是结果了:

enter image description here

关于android - 从 xamarin Vs2015 android 模拟器连接到本地 Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40399068/

相关文章:

安卓 JSON 对象

c# - Xamarin Open 关闭来自 android OnReceive 的 Xamarin 表单应用程序

c# - Xamarin Forms IOS 打开 PDF

c# - 转到 xamarin.forms 中的另一个页面后,汉堡图标消失

android - Firebase 设备测试实验室 : Failed to create a test matrix

java - android 共享首选项 xml 文件

java - stringByEvaluatingJavascriptFromString(iOS 方法,Android 等效方法是什么?)

android - 如何在不插入低分辨率文件的情况下显示像素化的 ImageView?

ios - 在 DialogViewController 中滚动破坏了单元格点击事件

Xamarin - 如何删除对话框片段顶部的额外空间