Строка utf8, тормозящая один путь к функции веб-сервиса - PullRequest
0 голосов
/ 10 июля 2019

При передаче данных 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

Я попытался проверить, не тормозит ли функция веб-сервиса текст, но его разработчик сказал, что получает странные символы

Я ожидаю, что строка всегда будет тормозить, если есть проблема с кодировкой, Я хочу получить состояние, при котором строка попадет в функцию веб-службы без каких-либо странных символов

  1. Мне не хватает заголовков?
  2. Я пытался кодировать строку c #, но это не помогло
  3. есть еще идеи, что может вызвать проблему?

большое спасибо

Я попытался добавить заголовок типа контента, но это не помогло. так что теперь мой код выглядит так:

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);
}
...