【发布时间】:2021-03-11 18:41:04
【问题描述】:
我正在尝试使用 android-networking 库 (OkHttp) 发送大字符串值(base64 格式的照片)。
JSONObject jsonObj= new JSONObject();
JSONArray photosBase64JsonArray = new JSONArray();
for (String photoBase64:myPhotosBase64
) {
photosBase64JsonArray.put(photoBase64);
}
jsonObj.put("photos", photosBase64JsonArray);
AndroidNetworking.post(serverAddress)
.addJSONObjectBody(jsonObj)
.setPriority(Priority.IMMEDIATE)
.addHeaders("myHeader", "testing")
.build()
.getAsJSONObject()....
我遇到了这个异常:
java.lang.StackOverflowError: stack size 8192KB
at java.lang.StringBuilder.append(StringBuilder.java:203)
at org.json.JSONStringer.string(JSONStringer.java:354)
at org.json.JSONStringer.value(JSONStringer.java:261)
at org.json.JSONObject.writeTo(JSONObject.java:733)
at org.json.JSONObject.toString(JSONObject.java:701)
at com.androidnetworking.common.ANRequest$PostRequestBuilder.addJSONObjectBody(ANRequest.java:1394)
如何发送很长的字符串值?
【问题讨论】:
-
您是否尝试过其他库,例如改造或 android volley?因为问题似乎来自图书馆内部。也许其他库会更好地处理更大的数据集?
-
使用 Jackson Parser 并解决问题 :) 谢谢。
-
很高兴听到它
标签: java android android-networking