62,244
社区成员




/// <summary>
/// 查询商品列表(无缓存操作)
/// 2013.4.24 -by 嘿嘿
/// </summary>
/// <param name="categoryname">产品类别名称</param>
/// <param name="lst">返回全部的商品信息列表</param>
/// <returns></returns>
public bool GetProductListClearCache()
{
string param = this.GetParam("");
string url = this._queryProduct + param;
string result = this.GetHttpRequest(url);//请求数据
GameTradingByPublic.PublicMethods.GetLogManager.Debug(result);//记录日志
List<ReturnType.GoodsInfo> lst = new List<ReturnType.GoodsInfo>();
GameTradingByPublic.ICached cached = GameTradingByPublic.CacheManager.GetMemCached();
if (!string.IsNullOrEmpty(result) && result.IndexOf("ret_code") < 0)//把请求的数据放到list数组中
{
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.LoadXml(result);
System.Xml.XmlNodeList nodelst = doc.GetElementsByTagName("ProductItem");
for (int i = 0; i < nodelst.Count; i++)
lst.Add(this.ConvertObj<ReturnType.GoodsInfo>(nodelst[i]));
}
if (lst != null && lst.Count > 0)//判断请求数据是否成功
{
object obj = cached.GetValue("JCardRecharge_Recharge_GetProductList");
if (obj != null)
{
//清除旧缓存
cached.DeleteValue("JCardRecharge_Recharge_GetProductList");
}
//增加新缓存
cached.PutValue("JCardRecharge_Recharge_GetProductList", lst, 24 * 60 * 60);
return true;
}
return false;
}
/// <summary>
/// 模拟Http请求
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
String GetHttpRequest(string url)
{
if (string.IsNullOrEmpty(url))
return string.Empty;
System.Net.HttpWebRequest request = System.Net.WebRequest.Create(url) as System.Net.HttpWebRequest;
request.Method = "GET";
request.ContentType = "application/x-www-form-urlencoded";
request.MaximumAutomaticRedirections = 1;
request.AllowAutoRedirect = false;
request.Timeout = 1024 * 16;
request.ContentLength = url.Length;
request.ServicePoint.Expect100Continue = false;
System.IO.StreamReader stream = null;
string responseValue = string.Empty;
try
{
stream = new System.IO.StreamReader(request.GetResponse().GetResponseStream(),Encoding.GetEncoding("gb2312"),true,102400);
//stream.Read(StreamToBytes(request.GetResponse().GetResponseStream()), 0, 1000);
responseValue = stream.ReadToEnd();
}
catch
{
responseValue = string.Empty; ;
}
finally
{
request.GetResponse().GetResponseStream().Close();
stream.Close();
stream = null;
}
return responseValue;
}