读书人

WebService天气预报,该怎么处理

发布时间: 2012-05-20 16:03:12 作者: rapoo

WebService天气预报
protected void Page_Load(object sender, EventArgs e)
{
//实例化地址服务
IpAddressSearchWebService ipaddress = new IpAddressSearchWebService();
//获取本地IP详细地址
string city = GetCity(ipaddress.getGeoIPContext()[1]);
ShowWeather(city);
}
//显示天气预报
public void ShowWeather(string city)
{

////获得指定地址的天气预报
string[] weathers = GetWatherByCity(city);
//获取有效时间
indate.Text = weathers[5].ToString().Replace("/", "~");
country.Text = weathers[1].ToString();
Image1.ImageUrl = @"weatherImage/" + weathers[8].ToString();



}

//按城市返回天气信息
public string[] GetWatherByCity(string city)
{
WeatherWebService weather = new WeatherWebService();
return weather.getWeatherbyCityName(city);


}

//地址字符串处理
public string GetCity(string city)
{

int index = city.IndexOf("省") == -1 ? city.IndexOf("县") : city.IndexOf("省");

int end = city.IndexOf("市") == -1 ? city.IndexOf("县") : city.IndexOf("市"); ;

if (index != -1 && end != -1)
{

return city.Remove(end).Substring(index + 1);
}
if (end == -1 && index != -1)
{
return city.Substring(index);
}

if (end != -1 && index == -1)
{
return city.Remove(end);
}


else
{

string[] s = city.Split(new char[] { ' ' });
return s[0];
}

}

为什么总是返回北京的天气

[解决办法]
嘻嘻,还有这样的方法的呀。。。看来可以加到我的那个小站去了。学习了
[解决办法]
看看传递的数据
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx
static void Main(string[] args)
{
WeatherWebService wws = new WeatherWebService();
string[] weatherArray = wws.getWeatherbyCityName("");
Console.WriteLine("{0}-{1}-{2}", weatherArray[6], weatherArray[7], weatherArray[8]);
Console.Read();
}

[解决办法]
WeaterhService.WeatherWebServiceSoapClient weather = new Weather.WeaterhService.WeatherWebServiceSoapClient("WeatherWebServiceSoap");
string cityName = this.txtCityName.Text.Trim();
string[] str = new string[23];
str = weather.getWeatherbyCityName(cityName);

this.txtProvince.Text = str[0];
this.txtCity.Text = str[1];
this.txtCityID.Text = str[2];
this.txtDate.Text = str[4];
this.txtTodayWeather.Text = str[5];
this.txtTodayWind.Text = str[7];

this.txttomWenDu.Text = str[12];
this.txtTomWeather.Text = str[13];
this.txtTomWind.Text = str[14];

this.txtHouTianWendu.Text = str[17];
this.txtHoutianWeather.Text = str[18];
this.txtHoutianWind.Text = str[19];

this.richTextBox1.Text = str[11];
[解决办法]
可能是IP地址问题,你的IP地址是哪里的,并不是取决于地理位置,很多情况下,北方某些地方的IP地址,反映过来都是其他地方的,尤其如果你的IP地址如果是通过DHCP自动获取的,那就更没准了!

读书人网 >C#

热点推荐