使用WebClient连接到Web服务

时间:2014-08-08 04:38:13

标签: json url xamarin webclient asp.net-web-api2

我编写了一个使用JSON的C#Web Api 2 Web服务应用程序。我现在想要将此Web服务中的数据检索到我的Xamarin应用程序中。

这是我的Xamarin代码:

public AndroidMapCompanyViewModel GetMapCompanyFromWebService(string URL)
{
    AndroidMapCompanyViewModel androidMapCompanyViewModel = new AndroidMapCompanyViewModel ();
    using (var webClient = new System.Net.WebClient()) 
    {

        var json = webClient.DownloadString(URL);
        androidMapCompanyViewModel = JsonConvert.DeserializeObject<AndroidMapCompanyViewModel>(json);
    }
    return androidMapCompanyViewModel;
}

我收到以下错误:

Error: ConnectFailure (Network is unreachable)

使用以下网址:

"http://localhost:22101/api/MapCompanyAPI/1"

单击错误的详细信息时,以下内容位于列表顶部:

System.ArgumentException: Illegal characters in path.

如果我打开浏览器,我可以成功连接到该网址。

我可以请一些帮助来从我的localhost网址中序列化json数据吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

显然您正在使用localhost来引用您的桌面计算机。以下是将Android设备连接到桌面本地主机的方法。

android connect to PC's localhost when debugger on mobile device

此外,使用HttpClient而不是WebClient可能更好。这是一个使用HttpClient的例子,我只是拼凑在一起。

public void DownloadJson ()
{
    using (var httpClient = new HttpClient ())
    {
        var response = httpClient.GetAsync (URL).Result;

        if (response.IsSuccessStatusCode) {
            var responseContent = response.Content;
            string contents = responseContent.ReadAsStringAsync ().Result;

            // insert your code here
        }
    }
}