我用String 接收服务器上的Xml 数据,如果把Buffer 设置的足够大,一次读出则没有什么问题,如果使用一个固定的buffer 读这些数据,而每次根据读回的数据长度把数据和并为一个完成的缓冲区,则在合并处出现一些多余的空格。代码如下
Dim strResult As String
Dim retLen As Long
Dim bRet As Boolean
Do
Dim buffer As String * &H800
bRet = InternetReadFile(hHttpOpenRequest, buffer, &H20, retLen)
If (retLen > 0) Then
strResult = strResult & Left(buffer, retLen)
Debug.Print Len(strResult)
Debug.Print strResult
End If
Loop While retLen > 0正常数据
<?xml version='1.0'?>
<document>
<user userid='112121' username='zych72'>
<VIEWREPORT/><AUDITREPORT/><SUBMITREPORT/>
</user>
</document>
问题数据
<?xml version='1.0'?>
<document>
<user userid='112121' username='zych72'>
<VIEWREPORT/><AUDITREPORT/><SUBMIT REPORT/> ---------这里多出来空格
<ExpiredTime value='2003-04-17'/>
</user>
</document>
请问这是什么原因,如何解决?
Dim strResult As String
Dim retLen As Long
Dim bRet As Boolean
Do
Dim buffer As String * &H800
bRet = InternetReadFile(hHttpOpenRequest, buffer, &H20, retLen)
If (retLen > 0) Then
strResult = strResult & Left(buffer, retLen)
Debug.Print Len(strResult)
Debug.Print strResult
End If
Loop While retLen > 0正常数据
<?xml version='1.0'?>
<document>
<user userid='112121' username='zych72'>
<VIEWREPORT/><AUDITREPORT/><SUBMITREPORT/>
</user>
</document>
问题数据
<?xml version='1.0'?>
<document>
<user userid='112121' username='zych72'>
<VIEWREPORT/><AUDITREPORT/><SUBMIT REPORT/> ---------这里多出来空格
<ExpiredTime value='2003-04-17'/>
</user>
</document>
请问这是什么原因,如何解决?
InternetReadFile是什么?这个是关键!
hInternetConnect = InternetConnect(hInternetSession, strHost, _
strPort, vbNullString, vbNullString, INTERNET_SERVICE_HTTP, 0, 0)
hHttpOpenRequest = HttpOpenRequest(hInternetConnect, "POST", _
strURI + "?" + postContent, "HTTP/1.1", vbNullString, 0, internetFlag, 0)
InternetOpen, InternetConnect, HttpOpenRequest, InternetReadFile 都是 wininet api