将utf8数据传递到Web服务时,数据中断,并且在每个文本块之后(总是在同一位置)带有奇怪符号的函数到达函数。 这个问题不会总是发生。 当添加更改字符串长度的字符时,问题消失了。
仅当发送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>";
这是我将数据发送到Web服务中的功能的方式:
ideaCatApi.idea_edit_item(string_to_send);
我对Web服务有服务参考: 这是Web配置中的配置
<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
我尝试检查Web服务功能是否可以制动文本,但其开发人员表示他使用奇怪的符号来获取文本
如果出现编码问题,我希望字符串总是刹车, 我想进入一种状态,即字符串将进入没有奇怪符号的Web服务功能
非常感谢您
我尝试添加内容类型标头,但没有帮助。所以现在我的代码如下:
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);
}