我编写了一个使用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数据吗?
提前致谢
答案 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
}
}
}