在我目前正在处理的应用程序中,有一个后端 java 应用程序正在缓存一堆数据。asp.net 部分允许用户更新数据库表。每次更新数据库时,都应清除 Java 应用程序中的缓存。所以基本上我有一个 4 个 URL 的列表,每个 URL 都需要被点击才能清除缓存。我的基本解决方案是遍历每个 url 并创建一个 HttpWebRequest 然后获取响应。所以基本上我对每个请求都有这个:
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 问题的解决方案或调用每个 URL 的不同解决方案都可以,我并不挑剔。
提前致谢。