【发布时间】:2014-03-17 15:56:48
【问题描述】:
我正在开发一个将 Yammer 与我们的移动产品(IOS - C# Xamarin Monotouch)集成的项目。底层技术是使用 Yammer Rest Calls 进行集成。为此,我们正在使用 RestSharp。
对 REST 服务的调用非常直接 创建一个 RestClient 对象 创建一个 RestSharp.RestRequest 使用其余客户端执行请求
但是我发现在 IPAD 上调用 REST 服务平均需要大约 5 -6 秒。 IPAD 使用的是开放网络。在 Windows 应用程序中使用 rest sharp 和 .Net 进行相同的调用速度很快。
有什么线索吗?任何人都在 IOS 上遇到过相同的 RestSharp 性能问题。
问候 席德
【问题讨论】:
-
回复量大吗?与桌面相比,iOS 设备上 JSON/XML 的序列化和反序列化相当慢。
-
响应没有那么大。我正在做一个得到。而且我相信放缓甚至没有达到反序列化的程度。我在执行请求之前和之后都有日志,费用似乎是电话。然后我使用 Newtonsoft JSON 将 JSON 响应转换为相当快的 C# 对象。
-
您是否测试过 WebClient 执行 GET 需要多长时间?
-
我曾尝试在一个小型示例应用程序中使用 HttpWebRequest 和 HttpWebResponse 但没有效果。它仍然是一样的。但是,如果将 NSUrlConnection.Start 与连接委托类一起使用,我可以看到巨大的差异。但是,如果我沿着这条路走下去,我怎么能尝试使这个调用同步。新来的这让我很头疼。
-
参见下面的示例 HttpClient 实现。它在功能上与 RestSharp 相似,但不嵌入 JSON 序列化程序。尽管我建议使用异步,但您可以轻松地将其修改为同步调用。