错误400从Xamarin调试设备访问Web Api时出现错误请求

时间:2013-03-30 23:17:43

标签: android webclient xamarin

我正在尝试从我的localhost上运行的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。

2 个答案:

答案 0 :(得分:0)

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

首先启用外部请求:IIS Express enable external request

然后编辑您应用的绑定信息:IISExpress returns a 503 error from remote machines

答案 1 :(得分:0)

我遇到了同样的问题,所有的东西在浏览器上都运行良好,但是从模拟器上无法连接(我收到一个400错误的请求),这很简单,我只是忘记以管理员身份启动我的Web api