最近想看看有没有股票相关的接口,自己做一个实时查看股票的信息。
找到了一个新浪的接口,但是读取到的数据,不能利用,所以花了一天时间来测试读取
下面是读取成功的测试
<script type="text/javascript">
$(function () {
getStock();
});
function getStock() {
$.ajax({
type: 'POST',
url: '@Url.Action("getStock")',
//contentType: "application/json; charset=utf-8",
async: false,
dataType: "json",
success: function (data) {
// var string1 = 'string1';
// var _script = 'var ' + string1 + ' =123;';
// eval(_script);
// console.log(typeof string1);//number
// console.log(string1);//123
// string1 = 456;
// console.log(string1);//456
var str = data.replace(/\\"/g, "'").replace(/\\n/g, "").replace(/\"/g, "");
console.log(str)
var hq_str_sh600600 = '123abc';
eval(str);
var value = eval(str);
console.log(hq_str_sh600600);
var result=hq_str_sh600600.split(",");
console.log(result[1])
$('#pstock').html(data)
},
error: function (message) {
// alert(message);
}
});
}
</script>
controller层代码
public JsonResult getStock()
{
string url = "http://hq.sinajs.cn/list=sh600104,sh600600";
string html = DB.GetHtml(url);
string js = JsonConvert.SerializeObject(html);
return Json(js);
//url: 'http://hq.sinajs.cn/list=sh600104,sh600600',
// return Json("abc");
}
读取html数据
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Web;
namespace stock.DAL
{
public static class DB
{
public static string GetHtml(string URL)
{
// HttpContext.Response.AppendHeader("Access-Control-Allow-Origin", "*");
WebRequest wrt;
wrt = WebRequest.Create(URL);
wrt.Credentials = CredentialCache.DefaultCredentials;
string code = Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", "admin", "123"))); //此处是用户名和密码
//添加Authorization到HTTP头
wrt.Headers.Add("Authorization", "Basic " + code);
wrt.Method = "POST";
WebResponse wrp;
wrp = wrt.GetResponse();
//wrp.Headers.Add("Access-Control-Allow-Origin", "*");
string reader = new StreamReader(wrp.GetResponseStream(), System.Text.Encoding.Default).ReadToEnd();
// string reader = new StreamReader(wrp.GetResponseStream(), Encoding.GetEncoding("gb2312")).ReadToEnd();
try
{
wrt.GetResponse().Close();
}
catch (WebException ex)
{
throw ex;
}
return reader;
}
}
}