gpt4 book ai didi

ios - xamarin iOS与HttpClient一起使用共享项目不起作用

转载 作者:行者123 更新时间:2023-12-01 22:18:02 24 4
gpt4 key购买 nike

我有一个使用共享项目的Xamarin android项目,该项目对我所有的网络服务都非常有效。在该共享项目中,我有一个类,该类具有通过HttpClient.PostAsync()调用REST端点的方法。我现在正在使用iOS版本,并且认为使用与我已经为android充实的类/方法完全相同,但是由于某些原因,iOS无法正常工作。

我没有引发任何异常,只是对PostAsync()的调用似乎已死,并且没有做任何我可以告诉的事情。我也尝试了GetAsync()调用,结果相同...什么都没有发生。

这是一些示例代码:

public class UserService
{
public async Task<UserModel> LoginUser(UserModel userModel)
{
var url = new Uri(Constants.BaseUrl + "v2api/LoginUser");
try
{
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
string userModelString = JsonConvert.SerializeObject(userModel);
var response = await client.PostAsync(url, new StringContent(userModelString, Encoding.Default, "application/json"));
if (response.IsSuccessStatusCode)
{
userModel = JsonConvert.DeserializeObject<UserModel>(await response.Content.ReadAsStringAsync());
}
}
}
catch (Exception e)
{
string exceptionString = e.ToString();
}
return userModel;
}
}

我在所有位置都设置了断点,它到达了:v ar response = await行,仅此而已。我什么也得不到。如上所述,这在android项目中很好用,只有iOS无法正常工作。我确定我忽略了一个非常简单的东西,只是不知道它会是什么。

我尝试将其添加到我的 info.plist文件中,但没有帮助:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>mysite.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true />
<key>NSExceptionRequiresForwardSecrecy</key>
<false />
</dict>
</dict>
</dict>

关于下一步的建议?

tia

最佳答案

经过更多的谷歌搜索后,我终于弄清楚了。这个线程是我的确切问题:https://forums.xamarin.com/discussion/17086/httpclient-postasync-doesnt-work-when-awaited

我用.Result调用登录方法;显然,这在iOS中不起作用,但奇怪的是在Android中。

Sushi,感谢您对iOS Http方面的教育:)

关于ios - xamarin iOS与HttpClient一起使用共享项目不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50711851/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com