Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XML转义字符_Xml_Vb.net_Httpwebrequest - Fatal编程技术网

XML转义字符

XML转义字符,xml,vb.net,httpwebrequest,Xml,Vb.net,Httpwebrequest,我试图发送一个POST请求,向API框添加一些内容。规则是主体格式应该是XML(值必须是XML转义)、HTTP方法(post)、需要身份验证(是)、请求内容(内容类型:“application/XML” 在循环过程中,您需要查找并编码特殊字符。大致如下: For i As Integer = 0 To searchItems.Count - (1000 - max) data = data + "<entries><entry><value

我试图发送一个POST请求,向API框添加一些内容。规则是主体格式应该是XML(值必须是XML转义)、HTTP方法(post)、需要身份验证(是)、请求内容(内容类型:“application/XML”


在循环过程中,您需要查找并编码特殊字符。大致如下:

 For i As Integer = 0 To searchItems.Count - (1000 - max)
            data = data + "<entries><entry><value>" & encodeEntry(searchItems.Item(i)) & "</value></entry></entries>" & vbNewLine
 Next

 Private Function encodeEntry(ByVal entry As String) As String
     Dim returnValue As String = entry

     ' Replace the special characters
     returnValue = returnValue.Replace("&", "&amp;")
     returnValue = returnValue.Replace("""", "&quot;")
     returnValue = returnValue.Replace("'", "&apos;")
     returnValue = returnValue.Replace("<", "&lt;")
     returnValue = returnValue.Replace(">", "&gt;")

     ' return the escaped string
     return returnValue
 End Function
对于i As Integer=0的searchItems.Count-(最大1000)
data=data+“”&encodeEntry(searchItems.Item(i))&&&vbNewLine
下一个
私有函数encodeEntry(ByVal条目作为字符串)作为字符串
将返回值设置为字符串=条目
'替换特殊字符
returnValue=returnValue。替换(“&”、“&;”)
returnValue=returnValue。替换(“”,“”)
returnValue=returnValue。替换(“'”,“&apos;”)
returnValue=returnValue。替换(“,”)
'返回转义字符串
返回值
端函数
  • 不要使用
    +
    运算符连接字符串,请使用
    StringBuilder
  • 不要使用
    StringBuilder
    来构建XML,使用
    XmlWriter
    ,它会解决编码问题

  • 这里的
    方法\uu 1
    的值是什么?在这种情况下,替换
    应该是不必要的(因为代码不在属性中)。
     For i As Integer = 0 To searchItems.Count - (1000 - max)
                    data = data + "<entries><entry><value>" & searchItems.Item(i) & "</value></entry></entries>" & vbNewLine
                Next
                If uri.Scheme = uri.UriSchemeHttps Then
                    Dim request As HttpWebRequest = HttpWebRequest.Create(uri)
                    request.Method = method__1
                    request.ContentLength = data.Length
                    request.ContentType = "application/xml"
                    request.Credentials = New System.Net.NetworkCredential("xxx@xxx.com", "xxxxxx")
                    Dim writer As New StreamWriter(request.GetRequestStream)
                    writer.Write(data)
                    writer.Close()
                    Dim oResponse As HttpWebResponse = request.GetResponse()
                    Dim reader As New StreamReader(oResponse.GetResponseStream())
                    Dim tmp As String = reader.ReadToEnd()
                    oResponse.Close()
                End If
    
     For i As Integer = 0 To searchItems.Count - (1000 - max)
                data = data + "<entries><entry><value>" & encodeEntry(searchItems.Item(i)) & "</value></entry></entries>" & vbNewLine
     Next
    
     Private Function encodeEntry(ByVal entry As String) As String
         Dim returnValue As String = entry
    
         ' Replace the special characters
         returnValue = returnValue.Replace("&", "&amp;")
         returnValue = returnValue.Replace("""", "&quot;")
         returnValue = returnValue.Replace("'", "&apos;")
         returnValue = returnValue.Replace("<", "&lt;")
         returnValue = returnValue.Replace(">", "&gt;")
    
         ' return the escaped string
         return returnValue
     End Function