首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用sql server从url解析xml文件

使用sql server从url解析xml文件
EN

Stack Overflow用户
提问于 2013-09-24 11:23:09
回答 1查看 1.4K关注 0票数 1

我是来自url的解析XML文件,当我第一次解析它时,它得到正确的响应,但是当在url xml文件中更改时,sql server解析旧响应(例如,第一次解析something=5 sql server解析5,然后再次在url =6 sql server解析5中解析)。但是我认为存在缓存问题,因为当我删除IE历史记录时,包括cookie和etc.SQL服务器,解析正确的响应。怎么解决呢?我解析如下:

代码语言:javascript
复制
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。

EN

回答 1

Stack Overflow用户

发布于 2013-09-24 14:30:21

你能控制来自另一端的内容吗?你可以把它设置为不缓存..。

例如asp.net(https://stackoverflow.com/a/4080188):

代码语言:javascript
复制
Response.AddHeader("Cache-Control", "no-cache, no-store, max-age=0, must-revalidate");

或经典的asp (https://stackoverflow.com/a/17390837):

代码语言:javascript
复制
Response.Expires = 0
Response.Expiresabsolute = Now() - 1
Response.AddHeader "pragma","no-cache"
Response.AddHeader "cache-control","private"
Response.CacheControl = "no-cache" 

如果您无法访问另一端,您可以做的是在请求中添加一个经常更改的额外参数,例如时间。

代码语言:javascript
复制
select @Url = 'http://myurl?time='+CONVERT(NVARCHAR(30),GETDATE(),120)

这假设另一端的服务器忽略了这个额外的参数。他们经常这样做

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

https://stackoverflow.com/questions/18980265

复制
相关文章

相似问题

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