C#访问新浪股票接口失效的处理
新浪接口很好用,但后来一直就不能用了,比如
http://hq.sinajs.cn?list=sh601003
返回Forbidden
找了一下,发现腾讯的股票接口和新浪的很接近,能用,就直接换腾讯了。
今天因为港股数据的问题,还是想试试新浪接口,找了一下文章,发现问题是新浪需要一个header
新浪股票接口失效解决方法,2022年访问接口出现 “Kinsoku jikou desu” 日语禁止访问
解决办法是在请求头部添加Referer字段
2022 新浪股票接口更新需要加Referer才能获取数据
Referer:http://finance.sina.com.cn
于是尝试,修改访问前修改HttpWebRequest,结果不行,研究一圈,发现需要用反射
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
//request.Headers.Add("referer", "https://finance.sina.com.cn/");
//request.Headers["referer"] = "https://finance.sina.com.cn/";
MethodInfo priMethod = request.Headers.GetType().GetMethod("AddWithoutValidate", BindingFlags.Instance | BindingFlags.NonPublic);
priMethod.Invoke(request.Headers, new string[] { "referer", "https://finance.sina.com.cn/" });
string content = "";
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK) //防止无响应
{
StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.GetEncoding("GB2312"));
content = reader.ReadToEnd();
reader.Close();
}
}
相关引用
using System;
using System.Collections.Generic;
using System.Text;
using System.Timers;
using System.Text.RegularExpressions;
using System.Data;
using System.Net;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
using System.IO;
using System.Reflection;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
2006-05-02 在dos下访问ntfs