Intereting Posts
Значок значка навигационной панели меняет цвет Использование метода updateAppWidgetOptions для AppWidgetManager для хранения параметров настройки виджета Android перетаскивание ImageView onTouchListener Прямой эфир RTSP на Android Использование EditText для фильтрации списка ListView с поддержкой SimpleCursorAdapter Ошибка андроида в учебнике не может найти символьную переменную activity_display_message Загружать анимацию с помощью Packer текстуры в andengine Почему onMeasure () дважды вызывается в моем пользовательском представлении? Android AWS s3 SDK загружает исключение «Socket is closed» или заканчивается раньше Расширение FrameLayout, дочерние представления больше не будут отображаться Android AsyncHttpClient – «Content-Type not allowed!» При загрузке файлов Как добраться, когда произошло последнее касание на экране? Как разместить макет поверх layout.setZOrderOnTop () Когда я отправляю SMS, иногда получается код = 0. Что означает этот код? Использование Android AccountManager для получения authtoken для gdata

Android-приложение запрашивает службу WCF (SerializationException – связанный с utf-8)

Некоторые запросы из нашего приложения Android в службу WCF приводят к следующей ошибке:

System.Runtime.Serialization.SerializationException: произошла ошибка десериализации объекта типа xxx.SaveChangesCommand. « rg rden» содержит недопустимые байты UTF8. —> System.Xml.XmlException: ' rg rden' содержит недопустимые байты UTF8. —> System.Text.DecoderFallbackException: Невозможно перевести байты [E6] в индекс 0 с указанной кодовой страницы в Юникод.

В System.Text.DecoderExceptionFallbackBuffer.Throw (Byte [] bytesUnknown, Int32 index) в System.Text.DecoderExceptionFallbackBuffer.Fallback (Byte [] bytesUnknown, Int32 index) в System.Text.DecoderFallbackBuffer.InternalFallback (Byte [] bytes, Byte * PBytes, Char * & chars) в System.Text.UTF8Encoding.FallbackInvalidByteSequence (Byte * & pSrc, Int32 ch, DecoderFallbackBuffer fallback, Char * и pTarget) в System.Text.UTF8Encoding.GetChars (байты * байты, Int32 byteCount, Char * Chars, Int32 charCount, DecoderNLS baseDecoder) в System.Text.UTF8Encoding.GetChars (байты [] байты, Int32 byteIndex, Int32 byteCount, Char [] chars, Int32 charIndex) в System.Xml.XmlConverter.ToChars (Byte [] buffer, Int32 offset, Int32 count, Char [] chars, Int32 charOffset)

--- End of inner exception 

Трассировка стека — в System.Xml.XmlConverter.ToChars (буфер байта [], смещение Int32, количество Int32, Char [] chars, Int32 charOffset) в System.Xml.XmlBufferReader.GetChars (смещение Int32, длина Int32, Char [ ] Chars) в System.Xml.XmlBufferReader.GetString (Int32 offset, Int32 length) в System.Xml.ValueHandle.GetString () в System.Xml.XmlBaseReader.ReadContentAsString () в System.Xml.XmlBaseReader.ReadElementContentAsString () в ReadArrayOfstringFromJson (XmlReaderDelegator, XmlObjectSerializerReadContextComplexJson, XmlDictionaryString, XmlDictionaryString, CollectionDataContract) при System.Runtime.Serialization.Json.JsonCollectionDataContract.ReadJsonValueCore (XmlReaderDelegator jsonReader, контекст XmlObjectSerializerReadContextComplexJson) при System.Runtime.Serialization.Json.JsonDataContract.ReadJsonValue (XmlReaderDelegator jsonReader, контекст XmlObjectSerializerReadContextComplexJson) в System.Runtime.Serialization.XmlObjectSerializerReadContext.InternalDeserialize (XmlReaderDelegator re Адер, имя String, String нс, тип declaredType, DataContract & DataContract) при System.Runtime.Serialization.XmlObjectSerializerReadContext.InternalDeserialize (XmlReaderDelegator XMLReader, Int32 идентификатор, RuntimeTypeHandle declaredTypeHandle, имя String, String нс) на ReadSaveShoppingListChangesCommandFromJson (XmlReaderDelegator, XmlObjectSerializerReadContextComplexJson, XmlDictionaryString, XmlDictionaryString []) в System.Runtime.Serialization.Json.JsonClassDataContract.ReadJsonValueCore (XmlReaderDelegator jsonReader, контекст XmlObjectSerializerReadContextComplexJson) при System.Runtime.Serialization.Json.JsonDataContract.ReadJsonValue (XmlReaderDelegator jsonReader, XmlObjectSerializerReadContextComplexJson контекст) в System.Runtime.Serialization.XmlObjectSerializerReadContext. InternalDeserialize (XmlReaderDelegator reader, String name, String ns, Type declarationType, DataContract & dataContract) в System.Runtime.Serialization.XmlObjectSerializerReadContext.InternalDeserialize (XmlReade RDelegator xmlReader, Тип объявленType, DataContract dataContract, String name, String ns) в System.Runtime.Serialization.Json.DataContractJsonSerializer.InternalReadObject (XmlReaderDelegator xmlReader, Boolean verifyObjectName) в System.Runtime.Serialization.XmlObjectSerializer.ReadObjectHandleExceptions (XmlReaderDelegator reader, Boolean verifyObjectName , DataContractResolver dataContractResolver)

— Конец внутренней трассировки стека исключений —
на System.Runtime.Serialization.XmlObjectSerializer.ReadObjectHandleExceptions (XmlReaderDelegator читатель, булева verifyObjectName, DataContractResolver dataContractResolver) в System.Runtime.Serialization.Json.DataContractJsonSerializer.ReadObject (считыватель XmlDictionaryReader, булева verifyObjectName) в System.ServiceModel.Dispatcher.SingleBodyParameterMessageFormatter.DeserializeRequest ( Message message, Object []) в System.ServiceModel.Dispatcher.DemultiplexingDispatchMessageFormatter.DeserializeRequest (Message message, Object [] parameters) в System.ServiceModel.Dispatcher.UriTemplateDispatchFormatter.DeserializeRequest (Message message, Object [] parameters) в System.ServiceModel .Dispatcher.DispatchOperationRuntime.DeserializeInputs (MessageRpc & rpc) в System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin (MessageRpc & rpc) в System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5 (MessageRpc & rpc) в System.ServiceModel.Dispatcher.ImmutableDi SpatchRuntime.ProcessMessage31 (MessageRpc & rpc) в System.ServiceModel.Dispatcher.MessageRpc.Process (Boolean isOperationContextSet)

Я искал некоторые подобные случаи, и я нашел эту ссылку:
Настройка десериализатора .NET WCF UTF-8 для изменения / отбрасывания не кратчайших символов формы вместо исключения исключения?
С возможным исправлением ошибки с UTF-8 с использованием не кратчайшей формы – если это так, то здесь оно выглядит.

Но я не понимаю, почему это исправление необходимо, потому что, как указано здесь:
https://blogs.oracle.com/CoreJavaTechTips/entry/the_overhaul_of_java_utf

Новая реализация кодировки UTF-8 была интегрирована в JDK7, Open JDK 6, JDK 6 update 11 и более поздних версиях, JDK5.0u17 и 1.4.2_19.

Когда я смотрю на запрос, я вижу:

HTTP_USER_AGENT: Apache-HttpClient / UNAVAILABLE ( java 1.4 )

Но приложение Android скомпилировано с помощью jdk1.7.0_13

Как мне исправить эту проблему?

Я думаю, что XML не полностью в формате UTF-8. См. Текст « rg rden» может быть в другом формате UTF-8. Как и ISO 8859-1 или что-то в этом роде.

Поэтому попробуйте кодировать текст в UTF-8, и он может работать 🙂