我是来自url的解析XML文件,当我第一次解析它时,它得到正确的响应,但是当在url xml文件中更改时,sql server解析旧响应(例如,第一次解析something=5 sql server解析5,然后再次在url =6 sql server解析5中解析)。但是我认为存在缓存问题,因为当我删除IE历史记录时,包括cookie和etc.SQL服务器,解析正确的响应。怎么解决呢?我解析如下:
Declare @Object as Int;
Declare @ResponseText as Varchar(8000);
Declare @Url as Varchar(MAX);
select @Url = 'http://myurl'
Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
Exec sp_OAMethod @Object, 'open', NULL, 'get', @Url, 'false'
Exec sp_OAMethod @Object, 'send'
Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
Exec sp_OADestroy @Object
--load into Xml
Declare @XmlResponse as xml;
select @XmlResponse = CAST(@ResponseText as xml)
select @XmlResponse.value('(//response/comment)[1]','varchar(50)')编辑:每次我访问页面时,解决了它,更改了IE设置,删除了临时的internet。
发布于 2013-09-24 14:30:21
你能控制来自另一端的内容吗?你可以把它设置为不缓存..。
例如asp.net(https://stackoverflow.com/a/4080188):
Response.AddHeader("Cache-Control", "no-cache, no-store, max-age=0, must-revalidate");或经典的asp (https://stackoverflow.com/a/17390837):
Response.Expires = 0
Response.Expiresabsolute = Now() - 1
Response.AddHeader "pragma","no-cache"
Response.AddHeader "cache-control","private"
Response.CacheControl = "no-cache" 如果您无法访问另一端,您可以做的是在请求中添加一个经常更改的额外参数,例如时间。
select @Url = 'http://myurl?time='+CONVERT(NVARCHAR(30),GETDATE(),120)这假设另一端的服务器忽略了这个额外的参数。他们经常这样做
https://stackoverflow.com/questions/18980265
复制相似问题