首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HttpWebRequest挂起

HttpWebRequest挂起
EN

Stack Overflow用户
提问于 2012-04-13 01:20:17
回答 2查看 310关注 0票数 1

在我目前正在开发的应用程序中,有一个后端java应用程序正在缓存大量数据。asp.net部件允许用户更新数据库表。每次更新数据库时,java应用程序中的缓存都应该被清除。因此,基本上我有一个包含4个URL的列表,每个URL都需要命中才能清除缓存。我的基本解决方案是遍历每个url并创建一个HttpWebRequest,然后获取响应。所以基本上我对每个请求都有这个:

代码语言:javascript
复制
var request = (HttpWebRequest)WebRequest.Create(url);
                request.Method = "POST";
                request.ContentLength = 0;

                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                {
                    Stream receiveStream = response.GetResponseStream();
                    StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);
                    string responseString = readStream.ReadToEnd();

                    returnList.Add(string.Format("Refresh response from {0}.<br />{1}", url, responseString));

                    readStream.Close();
                    receiveStream.Close();
                }

在我的本地机器上,一切都运行得很好。但是当我部署到我们的开发服务器时,它就挂起了,什么也不做。如果我删除了request.ContentLength = 0;,那么远程服务器就会抛出一个411: Length expected错误。

我真的被困在这里了,任何帮助都将不胜感激。

无论是我遇到的HttpWebRequest问题的解决方案,还是调用每个网址的不同解决方案,我都不挑剔。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-18 03:21:50

我很确定这是网络问题。我尝试访问不同的url (负载均衡器),没有问题,所以java人员正在做一些更改,这样我就可以访问负载均衡器,无论请求最终到达哪个服务器,都会确保清除所有服务器的缓存。

正在运行的代码:

代码语言:javascript
复制
var request = (HttpWebRequest)WebRequest.Create(url);

            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
            {
                Stream receiveStream = response.GetResponseStream();
                StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);
                string responseString = readStream.ReadToEnd();

                returnString = string.Format(@"Refresh response from<br />{0}{1}", url, responseString);

                readStream.Close();
                receiveStream.Close();
            }
票数 0
EN

Stack Overflow用户

发布于 2012-04-13 02:58:39

为什么使用request.method作为"POST"?您是否发布了任何数据,如果没有,请尝试删除内容长度和请求方法。

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

https://stackoverflow.com/questions/10128557

复制
相关文章

相似问题

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