Error When sending Json data to a Base64 encoded image server

in my code i am sending json data like this

ByteArrayOutputStream baos = new ByteArrayOutputStream();
                        imgbmp.compress(Bitmap.CompressFormat.PNG, 90, baos);
                        byte[] b = baos.toByteArray();
                        String encodedImage = Base64.encodeBytes(b);
                        jsonstr = new JSONStringer().object().key("Text")
                                .value(msg).key("Files").array().object().key(
                                        "ContentType").value("image/png").key(
                                        "Content").value(encodedImage)
                                .endObject().endArray().key("AuthToken").value(token)
                                .endObject();

StringEntity entity = new StringEntity(jsonstr.toString());
                    entity.setContentType("application/json;charset=UTF-8");
                    entity.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,"application/json;charset=UTF-8"));
                    request.setEntity(entity);
                    DefaultHttpClient httpClient = new DefaultHttpClient();

                    HttpResponse res = httpClient.execute(request);

and I get this error when executing HttpClient

09-30 11:56:21.571: INFO/Request(22161): org.apache.http.client.methods.HttpPost@468613b0
09-30 11:56:21.586: INFO/JSON ANS(22161): <Fault xmlns="http://schemas.microsoft.com/ws/2005/05/envelope/none"><Code><Value>Receiver</Value><Subcode><Value xmlns:a="http://schemas.microsoft.com/net/2005/12/windowscommunicationfoundation/dispatcher">a:InternalServiceFault</Value></Subcode></Code><Reason><Text xml:lang="en-US">The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or a non-white space character among the padding characters. </Text></Reason><Detail><ExceptionDetail xmlns="http://schemas.datacontract.org/2004/07/System.ServiceModel" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><HelpLink i:nil="true"/><InnerException i:nil="true"/><Message>The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or a non-white space character among the padding characters. </Message><StackTrace>   at System.Convert.FromBase64String(String s)&#xD;
09-30 11:56:21.586: INFO/JSON ANS(22161):    at Zoodig.Core.WebServices.DataContracts.FileContract.GetStream()&#xD;
09-30 11:56:21.586: INFO/JSON ANS(22161):    at Zoodig.WebServices.Services.AthletesService.PostUpdate(PostUpdateContract data)&#xD;
09-30 11:56:21.586: INFO/JSON ANS(22161):    at SyncInvokePostUpdate(Object , Object[] , Object[] )&#xD;
09-30 11:56:21.586: INFO/JSON ANS(22161):    at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]&amp; outputs)&#xD;
09-30 11:56:21.586: INFO/JSON ANS(22161):    at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc&amp; rpc)&#xD;
09-30 11:56:21.586: INFO/JSON ANS(22161):    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc&amp; rpc)&#xD;
09-30 11:56:21.586: INFO/JSON ANS(22161):    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc&amp; rpc)&#xD;
09-30 11:56:21.586: INFO/JSON ANS(22161):    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc&amp; rpc)&#xD;
09-30 11:56:21.586: INFO/JSON ANS(22161):    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc&amp; rpc)&#xD;
09-30 11:56:21.586: INFO/JSON ANS(22161):    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc&amp; rpc)&#xD;
09-30 11:56:21.586: INFO/JSON ANS(22161):    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc&amp; rpc)&#xD;
09-30 11:56:21.586: INFO/JSON ANS(22161):    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc&amp; rpc)&#xD;
09-30 11:56:21.586: INFO/JSON ANS(22161):    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc&amp; rpc)&#xD;
09-30 11:56:21.586: INFO/JSON ANS(22161):    at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)</StackTrace><Type>System.FormatException</Type></ExceptionDetail></Detail></Fault>

Please, if someone can understand this and tell me what is happening here ... where are the opportunities that I made with errors ... and why am I getting an error?

Thank. MKJParekh

+1
source share
3 answers

I got an answer ... I made no mistakes

This was a problem with org.json

i switched to another .. and it all works

Nesting too deep in JSON ... should I switch to XML?

+1
source

, enimg, JSON, encodedImage. , , Base64. encodeToString() android.util.Base64?

API 8, , Base64, , , .

0

/ json. " ", / .

0

All Articles