Bar*_*dee 5 httpclient ios xamarin.forms
我们正在使用 Xamarin Forms 5 和 Visual Studio 2022 构建适用于 iOS 和 Android 的移动应用程序。当我们向任何 api 发出 Post 请求时,我们自己的外部 api 总是会返回:
Xamarin.PreBuilt.iOS[3728:2199180] Xamarin.iOS: Received unhandled ObjectiveC exception: NSMallocException Failed to grow buffer
GET 请求工作正常。我搜索了 Google 和 StackOverflow 但找不到任何帮助。我尝试增加 HttpClient.MaxResponseContentBufferSize 没有任何区别。
现在的应用程序非常简单,一个页面有一个测试按钮。后台代码如下:
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
private async void Button_Clicked(object sender, EventArgs e)
{
var client = new HttpClient();
client.BaseAddress = new Uri("https://ptsv2.com/");
string jsonData = @"{}";
var content = new StringContent(jsonData, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync("/t/l4x2e-1637576441/post", content);
var result = await response.Content.ReadAsStringAsync();
}
}
Run Code Online (Sandbox Code Playgroud)
这在 iOS 链接设备上失败,但对于 Android Simulator 则有效。对于 iOS,我需要更改什么吗?
更新
该代码适用于除我之外的多台机器,试图找出这可能是什么设置,任何想法将不胜感激。
小智 4
我遇到了完全相同的问题,并已在 VS 反馈论坛上向 Microsoft 提交了一张票证。然后今天我找到了一个简单的解决方法。至少我认为这是一种解决方法,而不是解决方案。我曾经在哪里
HttpClient client = new HttpClient()
Run Code Online (Sandbox Code Playgroud)
我改为这样做:
var handler = new HttpClientHandler();
HttpClient client = new HttpClient(handler);
Run Code Online (Sandbox Code Playgroud)
宾果游戏,现在可以了。
| 归档时间: |
|
| 查看次数: |
771 次 |
| 最近记录: |