没有的测试的一段代码

来源:互联网 发布:盐与避难所 mac下载 编辑:程序博客网 时间:2024/04/30 12:01

由于今天手边没有Vs正好在CSDN上看到一篇文章怕忘记就存在这里了

没有进行测试

 

#region[OK]GetWeatherDataSet天气预报

[WebMethod(Description="天气预报")]

public DataSet GetWeatherDataSet(string cityName)
{
string url=@"http://appnews.qq.com/cgi-bin/news_qq_search";
string weatherData="";

try
{
weatherData=GetPage(url,cityName).Replace(" ","").Trim();
}
catch(Exception)
{
throw new Exception("对不起,没有这个城市的天气信息!");
}

//System.Diagnostics.Trace.WriteLine(tommorow);
//System.Diagnostics.Trace.WriteLine(weatherData);

WeatherDataSet weatherDs=new WeatherDataSet();
weatherDs.WeatherDS.AddWeatherDSRow(GetWeatherRow(ref weatherDs,weatherData,cityName));
return weatherDs;
}

private WeatherDataSet.WeatherDSRow GetWeatherRow(ref WeatherDataSet weatherDs,string weatherData,string cityName)
{
WeatherDataSet.WeatherDSRow weatherRow=weatherDs.WeatherDS.NewWeatherDSRow();
weatherRow.CityName=weatherData.Substring(weatherData.IndexOf("●")+1,cityName.Length);

weatherRow.Date1=DateTime.Now.ToLongDateString();

weatherRow.Weather1=weatherData.Substring(weatherData.IndexOf("天气")+"天气".Length,weatherData.IndexOf("气温")-(weatherData.IndexOf("天气")+"天气".Length));

weatherRow.Temp1=weatherData.Substring(weatherData.IndexOf("气温")+"气温".Length,weatherData.IndexOf("风力")-(weatherData.IndexOf("气温")+"气温".Length)).Replace("℃-","℃/");

weatherRow.WindPower1=weatherData.Substring(weatherData.IndexOf("风力")+"风力".Length,weatherData.IndexOf(tommorow)-(weatherData.IndexOf("风力")+"风力".Length));

weatherRow.Date2=DateTime.Today.AddDays(1).ToLongDateString();

weatherRow.Weather2=weatherData.Substring(weatherData.LastIndexOf("天气")+"天气".Length,weatherData.LastIndexOf("气温")-(weatherData.LastIndexOf("天气")+"天气".Length));

weatherRow.Temp2=weatherData.Substring(weatherData.LastIndexOf("气温")+"气温".Length,weatherData.LastIndexOf("风力")-(weatherData.LastIndexOf("气温")+"气温".Length)).Replace("℃-","℃/");

weatherRow.WindPower2=weatherData.Substring(weatherData.LastIndexOf("风力")+"风力".Length);

return weatherRow;
}

#endregion

#region GetPageString获取QQ的天气服务

//privatestringxx="";

[WebMethod(Description="天气预报")]

public string GetPageString(string cityName)
{
string url=@"http://appnews.qq.com/cgi-bin/news_qq_search";
return GetPage(url,cityName);
}

private static string GetPage(string url,string cityName)
{
HttpWebResponse res=null;
string strResult="";
try
{
string postData="city="+HttpUtility.UrlEncode(cityName,System.Text.Encoding.GetEncoding("GB2312"));
HttpWebRequest req=(HttpWebRequest)WebRequest.Create(url);
req.Method="POST";
req.KeepAlive=true;
req.ContentType="application/x-www-form-urlencoded";
StringBuilder UrlEncoded=new StringBuilder();
byte[]SomeBytes=Encoding.ASCII.GetBytes(postData);
req.ContentLength=SomeBytes.Length;
Stream newStream=req.GetRequestStream();
newStream.Write(SomeBytes,0,SomeBytes.Length);
newStream.Close();

//获得流内容

res=(HttpWebResponse)req.GetResponse();
System.IO.Stream s=res.GetResponseStream();
StreamReader reader=new StreamReader(s,System.Text.Encoding.Default);
strResult=reader.ReadToEnd();
}
catch(Exception e)
{
strResult=e.ToString();
}
finally
{
if(res!=null)
{
res.Close();
}
}

strResult=strResult.Remove(0,strResult.IndexOf("●"));

if(cityName!="北京")
{
strResult=strResult.Remove(strResult.IndexOf("北京"),strResult.Length-strResult.IndexOf("北京"));
}
else
{
strResult=strResult.Remove(strResult.LastIndexOf("北京"),strResult.Length-strResult.LastIndexOf("北京"));
}

strResult=strResult.Trim();
while(strResult.IndexOf(@"<")!=-1)//<>
{
strResult=strResult.Remove(strResult.IndexOf(@"<"),strResult.IndexOf(@">")-strResult.IndexOf(@"<")+1);
}

while(strResult.IndexOf(@" ")!=-1)
{
strResult=strResult.Replace(" ","");
}

string x=Encoding.UTF8.GetString(new Byte[]{10});
string y=Encoding.UTF8.GetString(new Byte[]{9});

while(strResult.IndexOf(x)!=-1)
{
strResult=strResult.Replace(x,"");
}

while(strResult.IndexOf(y)!=-1)
{
strResult=strResult.Replace(y,"");
}
return strResult;
}

#endregion


}
}
............