1

我正在尝试从在我的本地主机上运行的 WebApi 应用程序获得响应。我可以从浏览器获取它,也可以从另一个网络应用程序获取它。

但是,我在 Xamarin Studio 调试设备中遇到相同代码的问题

var url="http://192.168.2.4:13325/api/values";
using (WebClient wc = new WebClient())
{

    wc.Headers.Add("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
    wc.Headers.Add ("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22");
    wc.Headers.Add ("Accept-Encoding","gzip,deflate,sdch");
    wc.Headers.Add ("Accept-Language","en-US,en;q=0.8");
    wc.Headers.Add ("Accept-Charset","ISO-8859-1,utf-8;q=0.7,*;q=0.3");

    string HtmlResult = wc.DownloadString(url);
}

这是从浏览器发出请求时从 Fiddler 获取的标头。Web 应用程序甚至不需要这些并获得响应。

我正在使用我的计算机的 IP,因为我读到调试器运行虚拟机,所以我无法定位 localhost。

4

2 回答 2

0

我解决了这个问题。它与 Xamarin 或 android 无关,问题出在服务端。

首先启用外部请求:IIS Express启用外部请求

An then edit binding information for your app: IISExpress returns a 503 error from remote machines

于 2013-03-31T15:30:30.113 回答
0

I had the same problem everything is working good on the browser but connot connect from emulator (i get a 400 bad request) it was very simple i just forgot to launch my web api as administrator

于 2020-06-12T10:10:22.450 回答