jay*_* kj 22 web-services xamarin.android xamarin
我想创建一个web api应用程序来连接xamarin和android.
我已经尝试了很多,但一些连接错误即将到来.
我的代码如下:
public async Task<JsonValue> find(int ID)
{
using (HttpClient client = new HttpClient())
{
client.BaseAddress = new Uri("http://localhost:49836");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage result = client.GetAsync("api/Product").Result;
return JsonConvert.DeserializeObject<JsonValue>(await result.Content.ReadAsStringAsync());
}
}
}
Run Code Online (Sandbox Code Playgroud)
我收到如下错误
System.Net.WebException:错误:ConnectFailure(连接被拒绝)---> System.Net.Sockets.SocketException:连接被拒绝
任何人都可以帮忙.任何帮助表示赞赏.
Cul*_* Ch 31
这个答案可能会有点晚,但对于那些需要它的人:如果您使用的是Android Emulator,那么要求localhost Web服务将无法工作,因为您正在查看模拟器的localhost.你怎么解决这个问题?好吧,Android Emulator有一个神奇的地址http://10.0.2.2:your_port,它指向主机上的127.0.0.1:your_port.看看这里.因为它指的是IP而不是localhost,你需要进入你的项目解决方案,在.vs文件夹 - > config-> applicationhost.config中并将其更改<binding protocol="http" bindingInformation="*:13142:localhost" />
为<binding protocol="http" bindingInformation="*:13142:127.0.0.1" />
,其中13142是我的端口,你的可能会有所不同.重新启动IIS Express,你很高兴.
Ehs*_*edi 26
请注意,如果您的Web服务由IIS Express托管,那么您应该知道无法从外部设备连接到IIS Express,因为IIS Express本身只响应本地计算机的请求.所以从android模拟器作为外部(虚拟)设备,我们无法向IIS Express发送请求.解决方案是使用IIS而不是IIS Express.
我解决了如何通过 asp.net web api 从服务器下载数据的问题,首先我推荐简单的方法。
尝试使用完整地址,例如。
检查您是否已打开数据连接。
确保您有正确的路径(例如,当您打开 wifi 时,它会通过您的 WebAPI 所在的服务器,因此不是完整的地址,而是本地服务器的地址)。
这是在我的情况下运行的简单代码(从简单开始,然后继续)
using (WebClient webClient = new WebClient())
{
webClient.Encoding = System.Text.Encoding.UTF8;
string result = webClient.DownloadString(new Uri("https://webapi.domain.cz/api/root"));
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23544 次 |
最近记录: |