При передаче данных utf8 в веб-службу данные разбиваются, и они попадают в функцию со странными символами после каждого фрагмента текста, всегда в одном и том же месте.
эта проблема не бывает всегда.
при добавлении символа, который изменяет длину строки - проблема исчезает.
эта проблема возникает только при отправке utf8 символов. при отправке английских писем проблема не возникает
Пример:
это строка, которую я отправляю (как обычную строку, а не как XML)
string string_to_send="<API><METADATA id="METADATA"><SITE>sapir</SITE>
<SESSION_ID>52CA5BF6-472B</SESSION_ID><READER_ID></READER_ID>
<LANG_ID>HEB</LANG_ID> <LANG_UI_ID>HEB</LANG_UI_ID><ITEM>
<ITEM_ID>1234</ITEM_ID><update><FIELD lif ="SH2" collector_lif="0"
collector_val="0" old_val="N" new_val="N"/><FIELD lif="TA" collector_lif="0"
collector_val="0" old_val=""
new_val="טטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטט
טטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטט
טטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטטט"/>
</update></ITEM><IDEASTATE></IDEASTATE></METADATA></API>";
вот как я отправляю данные функции в веб-сервисе:
ideaCatApi.idea_edit_item(string_to_send);
У меня есть сервисная ссылка на веб-сервис:
это конфигурация в веб-конфигурации
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="idea_api_cat" />
</basicHttpBinding>
</bindings>
<client>
<endpoint
address="http://my_ip/ws/services/idea_api_cat_service"
binding="basicHttpBinding" bindingConfiguration="idea_api_cat"
contract="API_cat_idea.idea_api_cat_service"
name="idea_api_cat_service" />
</client>
</system.serviceModel>
Я запускаю этот код с моего локального компьютера - Windows 10
на сервер - windows server 2012 R2
Я попытался проверить, не тормозит ли функция веб-сервиса текст, но его разработчик сказал, что получает странные символы
Я ожидаю, что строка всегда будет тормозить, если есть проблема с кодировкой,
Я хочу получить состояние, при котором строка попадет в функцию веб-службы без каких-либо странных символов
- Мне не хватает заголовков?
- Я пытался кодировать строку c #, но это не помогло
- есть еще идеи, что может вызвать проблему?
большое спасибо
Я попытался добавить заголовок типа контента, но это не помогло. так что теперь мой код выглядит так:
using (new OperationContextScope(ideaCatApi.InnerChannel))
{
HttpRequestMessageProperty requestMessage = new HttpRequestMessageProperty();
requestMessage.Headers["Content-Type"] = "text/html;charset=utf-8";
OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = requestMessage;
xmlString = ideaCatApi.idea_edit_item(sb.ToString());
response = parseResult(xmlString);
}