【发布时间】:2016-03-23 15:56:08
【问题描述】:
我正在使用 Xamarin 开发移动应用程序。该应用程序正在使用一个 API,该 API 最近发布了一个使用 HTTPS 而不是 HTTP 的新版本。将 URL 更改为使用 HTTPS 并添加 atuhorization 标头时,请求会卡住并最终超时。例如,在 Postman 中进行测试时,API 调用工作正常。
所有 API 调用均来自可移植库,我在物理设备上运行应用程序。
有人对我能做些什么来解决这个问题有任何想法吗?
这是我用来向 API 发布数据的代码:
private async Task<HttpResponseMessage> PostData(HttpContent content, string authKey)
{
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("Authorization", authKey);
client.Timeout = new TimeSpan(0, 0, 25);
var response = await client.PostAsync(BaseUrl, content);
return response;
}
}
编辑
我尝试了许多不同的解决方案,设置标题、内容类型等,但没有任何效果。我尝试使用 HttpWebRequest 而不是 HttpClient 但没有成功。
我设置了一个 C# 控制台应用程序并创建了一个新的干净 Xamarin Android 项目。一切都在控制台应用程序中运行,但在 Xamarin 项目中却没有。
【问题讨论】:
-
如果你在Android上测试,将设备连接到Android SDK监控工具并查看logcat,它可能会对问题有所了解。
-
我知道这听起来很傻,但我曾经遇到过这种情况:我们在客户端的 baseurl 设置中包含了一个端口号(非标准 http:80),当我们切换服务器时忘记删除它监听默认的 80/443 端口