我有一个 xamarin.forms 应用程序,它有一个像这样的 GET Api URL
sampleurl.com/my-app-data/requests?orderBy=-created_at&related=user,+role&perPage=100
这在 Andorid 和 iOS 16 上运行良好。但是在 iOS 17 之后,URL 中的
"?"
更改为 "%"
,如下所示。
sampleurl.com/my-app-data/requests%orderBy=-created_at&related=user,+role&perPage=100
这会导致错误。我猜测是在 iOS 17 之后苹果引入了 url 解析行为导致了这个问题。我们如何解决这个问题?
我负责处理API调用的代码如下
var client = new HttpClient { BaseAddress = baseAddress };
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var current = Connectivity.NetworkAccess;
if (receivedMethod == APIMethodConstants.GET)
{
req = new HttpRequestMessage(HttpMethod.Get, apiurl);
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("bearer", JwtToken);
Task<string> task = Task.Run(async () => await Threading(client, req));
task.Wait();
stringObtained = task.Result;
jsonObtained = stringObtained;
}
async Task<string> Threading(HttpClient client, HttpRequestMessage req)
{
WebUtility.UrlDecode(req.RequestUri.ToString());
var resp = await client.SendAsync(req);
switch (resp.StatusCode)
{
//rest logic
}
return stringObtained;
}
如有任何帮助,我们将不胜感激。