Android,如何通过ksoap2将大量数据传输到Web服务?

时间:2012-11-20 08:39:14

标签: android web-services ksoap2 android-ksoap2

当我尝试向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日志中的例外情况: error stack trace

我很高兴你的答案。 最好的问候!

0 个答案:

没有答案