我正在使用以下方法从webapi捕获数据:
public static String sendRequest(String requestURL, String data)
throws IOException {
URL url = new URL(requestURL + "?" + data);
URLConnection conn = url.openConnection();
conn.setReadTimeout(10000);
BufferedReader in = new BufferedReader(new InputStreamReader(
conn.getInputStream()));
String inputLine;
StringBuilder answerBuilder = new StringBuilder("");
try {
while ((inputLine = in.readLine()) != null)
answerBuilder.append(inputLine);
in.close();
} catch (Exception e) {
}
return answerBuilder.toString();
}
对于某些请求,这会由于HeapSize太小而导致OutOfMemoryError:
(...)Caused by: java.lang.OutOfMemoryError: (Heap Size=17927KB, Allocated=14191KB, Bitmap Size=2589KB)
at java.lang.AbstractStringBuilder.enlargeBuffer(AbstractStringBuilder.java:95)
at java.lang.AbstractStringBuilder.append0(AbstractStringBuilder.java:132)
at java.lang.StringBuilder.append(StringBuilder.java:272)
at java.io.BufferedReader.readLine(BufferedReader.java:423)
at com.elophant.utils.HTTPUtils.sendRequest(HTTPUtils.java:23)
at (..)
我已经从正常的String操作(如String answer += inputLine
StringBuilder)换成了StringBuilder,但这没有帮助。我怎么解决这个问题?通过export JVM_ARGS="-Xmx1024m -XX:MaxPermSize=256m"
isnt作为其Android应用程序的一个选项来增加最大堆大小。
一种解决方案是将要下载的内容持久保存到存储中。
根据您要下载的内容,可以在读取过程中对其进行解析,并将其存储在SQL
Lite数据库中
。这将允许您之后使用查询语言来处理数据。如果要下载的文件是JSON或XML,这将非常有用。
在JSON中,您可以InputStream
像以前一样获取,并使用JSON
Reader
读取流。对于从JSON读取的每条记录,您都可以将其存储在一个表(或更多表,具体取决于每条记录的结构)中。这种方法的好处是,最后不需要文件处理,并且已经将数据分发到数据库中的表中以备查询。
我正在使用Gson解析一个JSON字符串,如下所示: 当我使用以下代码时,一切都很好: 我如何使用GSON使此工作?
问题内容: 我需要将一个以’\ n’分隔的文本字段(描述)解析为三个单独的字段。我通过利用和来执行此操作,但是它导致难以阅读和重复的sql。有没有一种方法可以创建和使用变量或表达式来保存instring函数返回的“位置”值,因此我可以将该变量传递给它?我在下面发布的代码可以正常工作并返回正确的结果,但是感觉不正确。有很多重复。 相关原始数据: 所需结果: 当前代码: 问题答案: 我建议使用哪一个功
null 我找不到任何说明这是一个限制的文档,也找不到任何绕过它的方法,因为maxFieldLength在4.0中被删除,并且string字段不支持分析器。 有其他人遇到这个问题或找到了解决办法吗?
问题内容: 我曾经在JavaScript中这样做: Swift没有此功能,如何做类似的事情? 问题答案: 编辑/更新: Xcode 11•Swift 5.1或更高版本 用法: 不区分大小写的样本 正则表达式样本
问题内容: 有谁知道一种非常简单的仅将字符串的首字母大写的方法,而与字符串其余部分的大写无关? 例如: 我也希望能够处理所有字符串长度。 问题答案: @ saua是正确的,并且 适用于任何字符串。
问题内容: 我在使用C#的ASP.NET 4中遇到了我的Web API的小问题。我正在尝试创建一个前端GUI,该GUI通过多个Web API发送和接收数据。拥有多个API的原因与我们的网络有关,该网络由几个安全区域组成。服务器位于不同的区域,一个简单的请求可能必须传递多达3个不同的API。 具体来说,我是从GUI向第一个API发送JSON对象。应该将JSON对象转发到下一个API和下一个API,然