首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将xml发布到类似REST的服务特定字符时出现错误请求

将xml发布到类似REST的服务特定字符时出现错误请求
EN

Stack Overflow用户
提问于 2009-08-22 14:31:55
回答 3查看 1.3K关注 0票数 0

我正在集成一个应用程序和一个服务(iContact),它描述它的应用程序接口为"rest-like“。我发布了XML,一切都很好...在我发送一些特殊的字符之前,我会收到一个来自服务器的“错误请求”错误。

代码语言:javascript
复制
<contacts>
  <contact>
    <firstname>Søren</firstname>
    <lastname>ÆbleTårn</lastname>
  </contact>
</contact>

我试着把名字和姓氏的值放在cdata中,但是没有用。

有没有可以应用于值的编码(类似于html-encode),或者我需要向另一个方向移动吗?

我怀疑这个问题是特定于.Net的,但答案可能是特定的,所以下面是我使用的代码:

代码语言:javascript
复制
Dim xml as string = GenerateXml()
Dim http As New HttpClient("http://uri.to/rest")
Dim resp As HttpResponseMessage = http.Post(String.Empty, HttpContent.Create(xml))
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-08-22 14:44:06

您可以在XML中使用数字实体来帮助解决一些编码问题:

代码语言:javascript
复制
<firstname>S&#xf8;ren</firstname>

但您仍然必须确保服务器编码正确,才能接收、处理和存储这些字符。很难知道错误在哪里……

票数 1
EN

Stack Overflow用户

发布于 2009-08-22 15:01:39

这个web服务似乎没有使用与您的应用程序相同的字符集编码。典型的编码是UTF-8或UTF-16。在服务文档中查找字符编码(如果失败,则在服务响应中查找),并查看是否有指定的编码。如果指定了一个,请验证它是否与客户端请求中使用的编码匹配。

对数据进行XMLEncode也是一种很好的做法。

票数 1
EN

Stack Overflow用户

发布于 2009-08-22 16:40:47

在答案指出了正确的方向之后,我编写了这个函数来对文本进行xmlencode。

代码语言:javascript
复制
Public Function XmlEncode(ByVal text As String) As String
    For i As Integer = 127 To 255
        text = Replace(text, Chr(i), "&#" & i.ToString & ";")
    Next
    return text
End Function

我相信它可以更有效,但性能并不是真正的问题,因为这将不会经常运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1316090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档