首页 > 编程语言 >C#访问新浪股票接口失效的处理

C#访问新浪股票接口失效的处理

时间:2023-05-02 11:34:04浏览次数:60  
标签:cn C# request System 接口 using 新浪 失效

新浪接口很好用,但后来一直就不能用了,比如

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;

标签:cn,C#,request,System,接口,using,新浪,失效
From: https://www.cnblogs.com/jetz/p/17367482.html

相关文章

  • 02 BTC-数据结构
    《区块链技术与应用》课程链接:https://www.bilibili.com/video/BV1Vt411X7JF/?spm_id_from=333.337.search-card.all.click02BTC-数据结构目录02BTC-数据结构hashpointerMerkletreehashpointer:不仅可以找到前区块的位置,还能防止前区块是否被篡改。Blockchainisal......
  • stack为什么叫做2-sheaf
    设\(\mathcal{C}\)是一个site,我们知道\(\mathcal{C}\)上的sheaf定义为满足下列条件的presheaf\(F\):对于任意sieve\(R\hookrightarrowX\),典范映射\[\mathrm{Hom}(X,F)\to\mathrm{Hom}(R,F)\]是双射.其中右侧的Hom集合定义为presheaf范畴中的Hom,即\(\mathrm{PSh}(\mathcal{C......
  • 03 BTC-协议
    《区块链技术与应用》课程链接:https://www.bilibili.com/video/BV1Vt411X7JF/?spm_id_from=333.337.search-card.all.click03BTC-协议目录03BTC-协议数字货币的需要解决的两个主要问题共识机制如果央行(中心化)发行数字货币,使用央行的私钥进行签名,大家交易的时候使用央行......
  • luck_guy 1
    查壳64位,进IDA,老套路进主函数unsigned__int64get_flag(){unsignedintv0;//eaxinti;//[rsp+4h][rbp-3Ch]intj;//[rsp+8h][rbp-38h]__int64s;//[rsp+10h][rbp-30h]BYREFcharv5;//[rsp+18h][rbp-28h]unsigned__int64v6;//[rsp+38h]......
  • 在cubeide中移植u8g2到STM32的流水账
    首先在github克隆项目源码到本地硬盘复制该文件夹到工程的core目录并改个名字,方便自己明天还能记得起来这是干毛用的文件夹,哈哈哈哈这个文件夹里边有121个文件包含了很多芯片的驱动,也就是名字中有_d_和芯片型号的文件先不管这些直接打开u8g2_d_setup.c 搜索关键字,比......
  • echarts 5.x 如果legend设置selected时,legend需要单击两次才能切换状态
    在第一组的selected里面先进行声明,在当前组再进行一次声明就可以了。 legend:[    {     show:true,     x:'center',     y:'0',     data:['日平均气温(℃)','日平均室温(℃)'],     textStyle:{......
  • 学习jdbc时遇到的问题
    jar包问题问题描述:java.sql.SQLException:Unabletoloadauthenticationplugin'caching_sha2_password”如果是上述的问题,可能就是jar包的问题我的Mysql是8.0.26的,而我所用的Java包时MySQL5的Java包,这时只要把jar包更改为MySQL8的jar包即可解决问题成功使用......
  • office打开提示总是提示micro
    Thefunctionyouareattemptingtoruncontainsmacroorcontentthatrequiresmacrolanguagesupport.Whenthesoftwareisinstalled,youchoosenottoinstallsupportformacrosorcontrols原因是系统安全策略提升后,宏都被禁用了。office总是提示类似的提示语。......
  • AtCoder Regular Contest 117 F Gateau
    洛谷传送门AtCoder传送门差分约束算法:给出\(m\)个不等式形如\(x_{a_i}\lex_{b_i}+y_i\),求是否有解。考虑把不等式看成图上的三角不等式\(dis_v\ledis_u+d\),连边\((b_i,a_i,y_i)\),以\(x_i\)最大的位置跑最短路,如果图中有负环就无解。此时求出来的\(dis_i\)......
  • e-DCC & v-DCC
    e-DCC&v-DCC概述DCC(双联通分量,DoubleConnectedComponent),是SCC在有向图中的相对概念,与SCC不同的是,DCC分为两种:e-DCC(边双联通分量,EdgeDoubleConnectedComponent)与v-DCC(点双联通分量,VertexDoubleConnectedComponent),其定义分别为图的极大边双联通子图与点双联通子图......