我使用以下代码作为球衣客户端将 InputStream 对象发送到服务器:
public static boolean assignDATask(Map<String,Future<InputStream>> daInitTaskResponseMap, String daId, String campaignId, List<Map> contList, Map campInfoBean, List<Map> campLinkBeanList, List<Map> timetableList, InputStream zippedAttachmentsStream, Map daTaskInfoBean, Map accountInfoBean){
AsyncWebResource asr = daWebResourceMap.get(daId);
if (asr!=null) {
try {
Integer readTimeoutValue = daReadTimeoutMap.get(daId).getDataAsInteger("assignBatch", DA_READ_TIMEOUT_ASSIGNBATCH_DEFAULT);
asr.setProperty(ClientConfig.PROPERTY_READ_TIMEOUT, readTimeoutValue);
FormDataMultiPart part = new FormDataMultiPart();
part.field("crmId", crmId, MediaType.APPLICATION_XML_TYPE);
part.field("campaignId", campaignId, MediaType.APPLICATION_XML_TYPE);
if (contList!=null)
part.field("contList", Util.zipDATransferParams(contList), MediaType.APPLICATION_XML_TYPE);
if (campInfoBean!=null)
part.field("campInfoBean", Util.zipDATransferParams(campInfoBean), MediaType.APPLICATION_XML_TYPE);
if (campLinkBeanList!=null)
part.field("campLinkBeanList", Util.zipDATransferParams(campLinkBeanList), MediaType.APPLICATION_XML_TYPE);
if (timetableList!=null)
part.field("timetableList", Util.zipDATransferParams(timetableList), MediaType.APPLICATION_XML_TYPE);
if (zippedAttachmentsStream!=null)
part.field("zippedAttachmentsStream", zippedAttachmentsStream, MediaType.APPLICATION_XML_TYPE);
part.field("daTaskInfoBean", Util.zipDATransferParams(daTaskInfoBean), MediaType.APPLICATION_XML_TYPE);
if (accountInfoBean!=null)
part.field("accountInfoBean", Util.zipDATransferParams(accountInfoBean), MediaType.APPLICATION_XML_TYPE);
logger.debug("part size: "+SizeOf.deepSizeOf(part));
Future<InputStream> assignDATaskResult = asr.path("initDASendECampTask").type(MediaType.MULTIPART_FORM_DATA_TYPE).post(InputStream.class, part);
logger.debug("assignDATaskResult size: "+SizeOf.deepSizeOf(assignDATaskResult));
daInitTaskResponseMap.put(daId,assignDATaskResult);
logger.debug("-----------------------------Current Time Sender: "+System.currentTimeMillis());
} catch (IOException ioe) {
logger.debug("Fail to zip the parameters", ioe);
return false;
}
} else {
logger.debug("DA not exist, DA ID: "+ daId);
return true;
}
return true;
}
FormDataMultiPart 为 72 个字节。但响应对象 (assignDATaskResult) 大约为 26 MB。我知道 assignDATaskResult 也用 ServletContext 包装。
然后我想知道如何测量我通过球衣发送的物体的尺寸?
该统计数据为我提供了网络上的高流量,在 2 小时的数据传输中约为 80 kB/s (640 kbps)。
这也是减少流量的任何方法吗?..也许将其转换为 JSON?
任何帮助将不胜感激。