获取 天气Api 返回的 json 数据 先调用 这个 http://www.weather.com.cn/data/cityinfo/101200101.html 然后 返回 数据 ,最好用 alert 循环 弹出 值要完整的 代码, 要能 测试运行的... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Demo 楼主可以调用WEBSERIVE 返回的是XML用JQUERY很好遍历。JSON倒没见过 代码已经经过测试,简单的用了WebBrowser控件: private void Form1_Load(object sender, EventArgs e) { string url = "http://www.weather.com.cn/data/cityinfo/101200101.html"; webBrowser1.Navigate(url); } private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { //避免webbroswer.DocumentCompleted被多次引发 if ((e.Url != webBrowser1.Url) || (webBrowser1.ReadyState != WebBrowserReadyState.Complete)) return; //下面写你要在页面加载完毕后执行的代码。 string result = webBrowser1.Document.Body.InnerText; DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(weatherinfoClass)); weatherinfoClass info = null; using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(result))) { info = serializer.ReadObject(ms) as weatherinfoClass; } [DataContract] class weatherinfoClass { [DataMember] public weatherinfo weatherinfo { get; set; } } [DataContract] class weatherinfo { [DataMember] public string city { get; set; } [DataMember] public string cityid { get; set; } [DataMember] public string temp1 { get; set; } [DataMember] public string temp2 { get; set; } [DataMember] public string weather { get; set; } [DataMember] public string img1 { get; set; } [DataMember] public string img2 { get; set; } [DataMember] public string ptime { get; set; } } 回复1楼:这个源码不错很详细,回复2楼:下载不了,要登录,回复3楼:webseriver用起来不方便,还要配置一个服务器,回复4楼:你那个是winfrom 版的, 我做的是web 版的开发,不过还是谢谢 给的代码,可以参考问题解决了, 另外问一下这 个 小问题(Bug), <script type="text/javascript"> var xmlhttp; // 创建XMLHTTPRequest对象 function createXMLHTTPRequest() { if (window.ActiveXObject)//②如果当前浏览器为IE { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } else if (window.XMLHttpRequest)//③如果是其他浏览器 { xmlhttp = new XMLHttpRequest(); } } function getInfo() { createXMLHTTPRequest(); xmlhttp.open("GET", "http://www.weather.com.cn/data/cityinfo/101200101.html", true); xmlhttp.onreadystatechange = returnInfo; xmlhttp.send(null); }红色的圈起来的地方 报错:没有权限, 有没有 知道是什么 原因的啊,代码我是在别的网站上Copy的 那你为什么不用ajax请求一个ashx,然后在ashx里面用webrequest类下载最新页面,然后利用正则表达获取出相应对数据,包装成json,返回前台页面呢? XMLHttpRequest不能跨域的,因为安全问题。可以写个aspx,在aspx的code behind class中的Page_load中从www.weather.com.cn取得数据,并Response。javascript从新的本网站的aspx中取得数据。 ...jsonp,获取到数据然后遍历json不久行了? Asp.net调用 xxx.dll在vs2005上调试正常,发布到IIS7.0调试时出错。应用程序池关闭 求助。。。 客户端删除子节点的问题 我们公司要开发一套OA,谁有源码,借鉴一下,不胜感激 DataSet 合并的问题 讨论一下:SqlDataReader 的用法??? 如何读取datagrid的数据 高手指点下 [救命]完了,WINDOWS2003无法运行ASP.NET了 如何在后台控制前台select控件选中项? 使用DropDownList控件绑定数据怎么获取所选项的ID '@top' 附近有语法错误。
private void Form1_Load(object sender, EventArgs e)
{
string url = "http://www.weather.com.cn/data/cityinfo/101200101.html"; webBrowser1.Navigate(url);
} private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
//避免webbroswer.DocumentCompleted被多次引发
if ((e.Url != webBrowser1.Url) || (webBrowser1.ReadyState != WebBrowserReadyState.Complete))
return;
//下面写你要在页面加载完毕后执行的代码。 string result = webBrowser1.Document.Body.InnerText;
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(weatherinfoClass)); weatherinfoClass info = null;
using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(result)))
{
info = serializer.ReadObject(ms) as weatherinfoClass;
}
[DataContract]
class weatherinfoClass
{
[DataMember]
public weatherinfo weatherinfo { get; set; }
}
[DataContract]
class weatherinfo
{
[DataMember]
public string city { get; set; }
[DataMember]
public string cityid { get; set; }
[DataMember]
public string temp1 { get; set; }
[DataMember]
public string temp2 { get; set; }
[DataMember]
public string weather { get; set; }
[DataMember]
public string img1 { get; set; }
[DataMember]
public string img2 { get; set; }
[DataMember]
public string ptime { get; set; }
}
回复2楼:下载不了,要登录,
回复3楼:webseriver用起来不方便,还要配置一个服务器,
回复4楼:你那个是winfrom 版的, 我做的是web 版的开发,不过还是谢谢 给的代码,可以参考问题解决了, 另外问一下这 个 小问题(Bug),
<script type="text/javascript"> var xmlhttp;
// 创建XMLHTTPRequest对象
function createXMLHTTPRequest() {
if (window.ActiveXObject)//②如果当前浏览器为IE
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest)//③如果是其他浏览器
{
xmlhttp = new XMLHttpRequest();
}
} function getInfo() {
createXMLHTTPRequest();
xmlhttp.open("GET", "http://www.weather.com.cn/data/cityinfo/101200101.html", true);
xmlhttp.onreadystatechange = returnInfo;
xmlhttp.send(null);
}
红色的圈起来的地方 报错:没有权限, 有没有 知道是什么 原因的啊,代码我是在别的网站上Copy的
XMLHttpRequest不能跨域的,因为安全问题。可以写个aspx,在aspx的code behind class中的Page_load中从www.weather.com.cn取得数据,并Response。
javascript从新的本网站的aspx中取得数据。