- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我遇到了必须通过 HttpPost 请求在远程服务器中提取一些信息的常见情况。想象一下,我们正在使用天气应用检索一些天气信息。
服务器发送一个长输入流,我们有兴趣从这个流中提取一些信息。请记住,我们处于内存 CPU 绑定(bind)环境中。
我们有两个选择:
1) 我们使用 JSON 或 XML 解析器来提取信息。
这是推荐的方法,但它有一些缺点:
它冗长得令人痛苦,尤其是当我们想要从大数据流中获取少量信息时。
它应该更快并且对垃圾收集更友好,但我不确定上述情况是否如此(大数据流中的信息很少)。
2)我们使用简单的字符串操作(SSM):
我们通过粗略地去除无用的信息来减少输入流的维度,然后我们从一个紧凑的字符串中提取信息。为此,我们可以使用静态方法构建过滤器,以减少垃圾收集器的工作。
这种方法也有一些缺点:
还有一些重要的优点:
总结起来,问题是:
1) 简单的字符串操作是一个很大的禁忌方法,还是考虑使用它是合理的?2) 如果您对上一个问题的回答是"is"(big no-no approach),您能解释一下您的理由吗?
干杯:)
最佳答案
我会请求 JSON 格式的信息(不是 XML,它更冗长没有优势)并使用基于事件的解析器来定位所需的数据,方法是在从服务器读取数据时在线处理流。
这将非常容易内存,并且不需要更改服务器提供的内容。与您可能组合在一起的任何本地字符串切片解决方案相比,它也将更加可靠和更能抵抗变化。
我有一个免费分发的非常light-weight pull parser对于我网站上的 JSON。其他可从 http://www.json.org 获得.
关于java - JSON VS 简单的字符串操作来解析 Android 中的 HttpRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5034952/
假设我的客户端(浏览器)请求我的 java 服务(服务 A)。 http://localhost:8080/getDataFromB 根据服务 A 的请求,我需要向服务 B 或服务 C 发出另一个 H
我正在尝试调用 API 来检索数据列表,此数据将帮助我获取图像源。因此,对于每个数据条目,我尝试调用图像 url 并使用 Parse Image 进行一些图像处理。问题是,内部的 httpReques
当前代码 if (!(context.Exception is exception)) HttpContent requestContent = context.Request.Content
我有这个代码: You are browsing this site with: Or with Request.UserAgent: 第一个在浏览器
我正在使用 Django 和 TornadIO2/Tornado 编写一个 socket.io 应用程序。在 TonradIO2 session 中,我可以访问 Tornado 的 HTTPReque
用于确定用户代理的这两个属性之间有什么区别(如果有)和优点/缺点? Dim strUserAgt as String userAgent = Request.userAgent 对比 Dim strU
详情如下:https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.http.httprequest?view=aspnetco
我一直在关注我网站的性能,在所有执行缓慢的代码 (>1s) 中,超过 90% 是因为 System.Web.HttpRequest.GetEntireRawContent()(由 System.Web
我有一个后端服务,它接受授权 header 来验证访问。我使用 Spring cloud zuul 创建了一个网关服务,并将请求路由到后端服务。 网关服务本身受 OAuth2 保护,并接受授权 hea
是否可以在中间件函数中获取请求方法(GET、POST、PUT...)? $myMiddleware = function (Request $request) { // This is wha
代码如下: //Get请求方式 private string RequestGet(string Url) &n
在 .net Framework yield ok. // if is not valid var request = HttpContext.Current.Req
在用于 http get 和 post 的 angular 5.2.x 中,我有以下代码: post(url: string, model: any): Observable { return thi
我试图了解如何从Dart进行Ajax调用。我对Web编程的了解非常有限。 我的简单服务器ajax.py:- #!/usr/bin/env python from datetime import tim
我正在为Http GET请求创建包装器类,但是当我使用HttpRequest.request时,没有任何响应。如果我使用原始的HttpRequests使用等效的代码,则可以使用。 我想念什么吗?我正在
我正在尝试生成一个 jmeter 脚本,其中每次运行脚本时都会创建一个唯一的文件夹 - 将某种变量添加到文件夹名称中,例如用户名+时间戳,应该足以保证唯一性。然而,jmeter 并没有将变量解析为其值
我有一个网络应用程序,它有一个计时器,每 3 秒触发一次轮询以获取数据。它工作正常大约 2.5 分钟,然后 Chromium 崩溃。 我的请求 Dart 看起来像这样 HttpRequest.getS
我目前有一个函数,可以生成 httpRequest 并将接收到的 json 解析为 URL array 。我想在第一个请求完成并且数据解析后触发第二个 httpRequest ,在我尝试过的两种解决方
我试图像这样延迟我的 $http 调用: githubService.getUserEvents = function getUserEvents() { return $timeout
我正在运行 340 个并发用户以使用 jmeter 在服务器上进行负载测试。 但是在大多数情况下,jmeter 挂断并且不会返回,即使我尝试关闭连接它也只是挂断了。最终我不得不关闭应用程序。 任何想法
我是一名优秀的程序员,十分优秀!