当我尝试向Web服务发送大量数据时,我遇到了一个大问题。我需要向网络服务发送大约20-30张照片。我将所有照片转换为base64字符串并发送到Web服务。问题是,当我发送1张照片是可以的,但是当我尝试发送2张照片或更多时,我的内存不足异常。 我的代码:
public boolean TransferAccidentFromGisToRarParameters(List<String> photos) {
String METHOD_NAME = "TransferAccidentFromGisToRarParameters";
String SOAP_ACTION = NAMESPACE + METHOD_NAME;
request = new SoapObject(NAMESPACE, METHOD_NAME);
envelope.setOutputSoapObject(request);
SoapObject arr = new SoapObject(NAMESPACE, "accidentPhotos");
for (String string : photos) {
arr.addProperty("string", string);
}
request.addSoapObject(arr);
try {
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
return Boolean.parseBoolean(response.toString());
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
其中:photos - base64字符串列表 我的Web服务代码块(asmx Web服务):
[WebMethod]
public bool TransferAccidentFromGisToRarParameters(string[] accidentPhotos)
{
try
{
foreach (var photo in accidentPhotos)
{
var item = Convert.FromBase64String(photo);
var accidentMedia = new AccidentMedia { Content = item };
entities.media_accidents.AddObject(accidentMedia);
}
entities.SaveChanges();
return true;
}
catch (Exception exc)
{
return false;
}
}
这是Android日志中的例外情况:
我很高兴你的答案。 最好的问候!