一个奇怪的问题

spmzfz 2014-05-21 05:11:22

private string[] GetStockData(string SourceStocks)
{
string[] ReturnResultStrs = new string[SourceStocks.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Count()];

HttpWebRequest Request = (HttpWebRequest)WebRequest.Create("http://hq.sinajs.cn/list=" + SourceStocks);
Request.Method = "Get";
Request.ContentType = "application/x-www-form-urlencoded";
WebResponse Response = Request.GetResponse();
Stream S = Response.GetResponseStream();
StreamReader Sr = new StreamReader(S, System.Text.Encoding.GetEncoding("GB2312"));
string ReadStrs = Sr.ReadToEnd();
ReturnResultStrs = ReadStrs.Split(new string[] { ";\n" }, StringSplitOptions.RemoveEmptyEntries);

return ReturnResultStrs;
}
private void button1_Click(object sender, EventArgs e)
{

//其他信息: 远程服务器返回错误: (400) 错误的请求。

//string S = GetStockData("sh600345")[0];
//Console.WriteLine(S);

string St = "sh600000,sh600004,sh600005,sh600006,sh600007,sh600008,sh600009,sh600010,sh600011,sh600012,sh600015,sh600016,sh600017,sh600018,sh600019,sh600020,sh600021,sh600022,sh600023,sh600026,sh600027,sh600028,sh600029,sh600030,sh600031,sh600033,sh600035,sh600036,sh600037,sh600038,sh600039,sh600048,sh600050,sh600051,sh600052,sh600053,sh600054,sh600055,sh600056,sh600057,sh600058,sh600059,sh600060,sh600061,sh600062,sh600063,sh600064,sh600066,sh600067,sh600068,sh600069,sh600070,sh600071,sh600073,sh600074,sh600076,sh600077,sh600078,sh600079,sh600080,sh600081,sh600082,sh600083,sh600084,sh600085,sh600086,sh600088,sh600089,sh600090,sh600093,sh600094,sh600095,sh600096,sh600097,sh600098,sh600099,sh600100,sh600101,sh600103,sh600104,sh600105,sh600106,sh600107,sh600108,sh600109,sh600110,sh600111,sh600112,sh600113,sh600114,sh600115,sh600116,sh600117,sh600118,sh600119,sh600120,sh600121,sh600122,sh600123,sh600125,sh600126,sh600127,sh600128,sh600129,sh600130,sh600131,sh600132,sh600133,sh600135,sh600136,sh600137,sh600138,sh600139,sh600141,sh600143,sh600146,sh600148,sh600149,sh600150,sh600151,sh600152,sh600153,sh600155,sh600156,sh600157,sh600158,sh600159,sh600160,sh600161,sh600162,sh600163,sh600165,sh600166,sh600167,sh600168,sh600169,sh600170,sh600171,sh600172,sh600173,sh600175,sh600176,sh600177,sh600179,sh600180,sh600182,sh600183,sh600184,sh600185,sh600186,sh600187,sh600188,sh600189,sh600190,sh600191,sh600192,sh600193,sh600195,sh600196,sh600197,sh600198,sh600199,sh600200,sh600201,sh600202,sh600203,sh600206,sh600207,sh600208,sh600209,sh600210,sh600211,sh600212,sh600213,sh600215,sh600216,sh600217,sh600218,sh600219,sh600220,sh600221,sh600222,sh600223,sh600225,sh600226,sh600227,sh600229,sh600230,sh600231,sh600232,sh600233,sh600234,sh600235,sh600236,sh600237,sh600238,sh600239,sh600240,sh600241,sh600242,sh600243,sh600246,sh600248,sh600249,sh600250,sh600251,sh600252,sh600255,sh600256,sh600257,sh600258,sh600259,sh600260,sh600261,sh600262,sh600266,sh600267,sh600268,sh600269,sh600270,sh600271,sh600272,sh600273,sh600275,sh600276,sh600277,sh600278,sh600279,sh600280,sh600281,sh600283,sh600284,sh600285,sh600287,sh600288,sh600289,sh600290,sh600291,sh600292,sh600293,sh600295,sh600297,sh600298,sh600300,sh600302,sh600303,sh600305,sh600307,sh600308,sh600309,sh600310,sh600311,sh600312,sh600313,sh600315,sh600316,sh600317,sh600318,sh600319,sh600320,sh600321,sh600322,sh600323,sh600325,sh600326,sh600327,sh600328,sh600329,sh600330,sh600331,sh600332,sh600333,sh600335,sh600336,sh600337,sh600338,sh600339,sh600340,sh600343,sh600345,sh600346,sh600348,sh600350,sh600351,sh600352,sh600353,sh600354,sh600355,sh600356,sh600358,sh600359,sh600360,sh600361,sh600362,sh600363,sh600365,sh600366,sh600367,sh600368,sh600369,sh600370,sh600371,sh600372,sh600373,sh600375,sh600376,sh600377,sh600378,sh600379,sh600380,sh600382,sh600383,sh600386,sh600387,sh600388,sh600389,sh600390,sh600391,sh600392,sh600393,sh600395,sh600396,sh600397,sh600398,sh600399,sh600400,sh600401,sh600403,sh600405,sh600406,sh600408,sh600409,sh600410,sh600415,sh600416,sh600418,sh600419,sh600420,sh600421,sh600422,sh600423,sh600425,sh600426,sh600428,sh600429,sh600432,sh600433,sh600435,sh600436,sh600438,sh600439,sh600444,sh600446,sh600448,sh600449,sh600452,sh600455,sh600456,sh600458,sh600459,sh600460,sh600461,sh600462,sh600463,sh600466,sh600467,sh600468,sh600469,sh600470,sh600475,sh600476,sh600477,sh600478,sh600479,sh600480,sh600481,sh600482,sh600483,sh600485,sh600486,sh600487,sh600488,sh600489,sh600490,sh600491,sh600493,sh600495,sh600496,sh600497,sh600498,sh600499,sh600500,sh600501,sh600502,sh600503,sh600505,sh600506,sh600507,sh600508,sh600509,sh600510,sh600511,sh600512,sh600513,sh600515,sh600516,sh600517,sh600518,sh600519,sh600520,sh600521,sh600522,sh600523,sh600525,sh600526,sh600527,sh600528,sh600529,sh600530,sh600531,sh600532,sh600533,sh600535,sh600536,sh600537,sh600538,sh600540,sh600543,sh600545,sh600546,sh600547,sh600548,sh600549,sh600551,sh600552,sh600555,sh600556,sh600557,sh600558,sh600559,sh600560,sh600561,sh600562,sh600563,sh600565,sh600566,sh600567,sh600568,sh600569,sh600570,sh600571,sh600572,sh600573,sh600575,sh600576,sh600577,sh600578,sh600579,sh600580,sh600581,sh600582,sh600583,sh600584,sh600585,sh600586,sh600587,sh600588,sh600589,sh600590,sh600592,sh600593,sh600594,sh600595,sh600596,sh600597,sh600599,sh600600,sh600601,sh600602,sh600603,sh600604,sh600605,sh600606,sh600608,sh600609,sh600611,sh600612,sh600613,sh600614,sh600615,sh600616,sh600617,sh600618,sh600619,sh600620,sh600621,sh600622,sh600623,sh600624,sh600626,sh600628,sh600629,sh600630,sh600633,sh600634,sh600635,sh600636,sh600637,sh600638,sh600639,sh600640,sh600641,sh600642,sh600643,sh600644,sh600645,sh600647,sh600648,sh600649,sh600650,sh600651,sh600652,sh600653,sh600654,sh600655,sh600656,sh600657,sh600658,sh600660,sh600661,sh600662,sh600663,sh600664,sh600665,sh600666,sh600667,sh600668,sh600671,sh600673,sh600674,sh600675,sh600676,sh600677,sh600678,sh600679,sh600680,sh600681,sh600682,sh600683,sh600684,sh600685,sh600686,sh600687,sh600688,sh600690,sh600691,sh600692,sh600693,sh600694,sh600695,sh600696,sh600697,sh600698,sh600699,sh600701,sh600702,sh600703,sh600704,sh600705,sh600706,sh600707,sh600708,sh600710,sh600711,sh600712,sh600713,sh600714,sh600715,sh600716,sh600717,sh600718,sh600719,sh600720,sh600721,sh600722,sh600723,sh600724,sh600725,sh600726,sh600727,sh600728,sh600729,sh600730,sh600731,sh600732,sh600733,sh600734,sh600735,sh600736,sh600737,sh600738,sh600739,sh600740,sh600741,sh600742,sh600743,sh600744,sh600745,sh600746,sh600747,sh600748,sh600749,sh600750,sh600751,sh600753,sh600754,sh600755,sh600756,sh600757,sh600758,sh600759,sh600760,sh600761,sh600763,sh600764,sh600765,sh600766,sh600767,sh600768,sh600769,sh600770,sh600771,sh600773,sh600774,sh600775,sh600776,sh600777,sh600778,sh600779,sh600780,sh600781,sh600782,sh600783,sh600784,sh600785,sh600787,sh600789,sh600790,sh600791,sh600792,sh600794,sh600795,sh600796,sh600797,sh600798,sh600800,sh600801,sh600802,sh600803,sh600804,sh600805,sh600806,sh600807,sh600808,sh600809,sh600810,sh600811,sh600812,sh600814,sh600815,sh600816,sh600818,sh600819,sh600820,sh600821,sh600822,sh600823,sh600824,sh600825,sh600826,sh600827,sh600828,sh600829,sh600830,sh600831,sh600832,sh600833,sh600834,sh600835,sh600836,sh600837,sh600838,sh600839,sh600841,sh600843,sh600844,sh600845,sh600846,sh600847,sh600848,sh600850,sh600851,sh600853,sh600854,sh600855,sh600856,sh600857,sh600858,sh600859,sh600861,sh600862,sh600863,sh600864,sh600865,sh600866,sh600867,sh600868,sh600869,sh600870,sh600872,sh600873,sh600874,sh600875,sh600876,sh600877,sh600879,sh600880,sh600881,sh600882,sh600883,sh600884,sh600885,sh600886,sh600887,sh600888,sh600889,sh600890,sh600891,sh600892,sh600893,sh600894,sh600895,sh600896,sh600897,sh600898,sh600900,sh600960,sh600961,sh600962,sh600963,sh600965,sh600966,sh600967,sh600969,sh600970,sh600971,sh600973,sh600975,sh600976,sh600978,sh600979,sh600980,sh600981,sh600982,sh600983,sh600984,sh600985,sh600986,sh600987,sh600988,sh600990,sh600992,sh600993,sh600995,sh600997,sh600998,sh600999,sh601000,sh601001,sh601002,sh601003,sh601005,sh601006,sh601007,sh601008,sh601009,sh601010,sh601011,sh601012,sh601018,sh601028,sh601038,sh601058,sh601088,sh601098,sh601099,sh601100,sh601101,sh601106,sh601107,sh601111,sh601113,sh601116,sh601117,sh601118,sh601126,sh601137,sh601139,sh601158,sh601166,sh601168,sh601169,sh601177,sh601179,sh601186,sh601188,sh601199,sh601208,sh601216,sh601218,sh601222,sh601225,sh601231,sh601233,sh601238,sh601258,sh601288,sh601299,sh601311,sh601313,sh601318,sh601328,sh601333,sh601336,sh601339,sh601369,sh601377,sh601388,sh601390,sh601398,sh601515,sh601518,sh601519,sh601555,sh601566,sh601567,sh601588,sh601599,sh601600,sh601601,sh601607,sh601608,sh601616,sh601618,sh601628,sh601633,sh601636,sh601666,sh601668,sh601669,sh601677,sh601678,sh601688,sh601699,sh601700,sh601717,sh601718,sh601727,sh601766,sh601777,sh601788,sh601789,sh601798,sh601799,sh601800,sh601801,sh601808,sh601818,sh601857,sh601866,sh601872,sh601877,sh601880,sh601886,sh601888,sh601890,sh601898,sh601899,sh601901,sh601908,sh601918,sh601919,sh601928,sh601929,sh601933,sh601939,sh601958,sh601965,sh601988";

string[] returnStrs = GetStockData(St);
Console.WriteLine("returnStrs.Length:{0}",returnStrs.Length);
}

当我点及按钮时程序会提示出错误,信息为远程服务器返回错误: (400) 错误的请求。
但如果我将string S = GetStockData("sh600345")[0];Console.WriteLine(S);这两行源代码取消注释的话,程序则可运行并且不会提示出错,为什么会这样?
...全文
270 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wmg494005678 2014-05-22
  • 打赏
  • 举报
回复
我换了一下ContentType就可以了
  Request.ContentType = "application/xml";
spmzfz 2014-05-22
  • 打赏
  • 举报
回复
谁能帮我看一下源码啊?
sunny906 2014-05-22
  • 打赏
  • 举报
回复
响应头信息原始头信息
Cache-Control no-cache
Connection Keep-Alive
Content-Encoding gzip
Content-Length 18442
Content-Type application/x-javascript; charset=GBK
请求头信息原始头信息
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Connection keep-alive
Host hq.sinajs.cn
User-Agent Mozilla/5.0 (Windows NT 6.1; rv:29.0) Gecko/20100101 Firefox/29.0

用抓包工具看看,请求的头部没有Content-Type
sunny906 2014-05-22
  • 打赏
  • 举报
回复

        private string[] GetStockData(string SourceStocks)
        {
            string[] ReturnResultStrs = new string[SourceStocks.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Count()];

            HttpWebRequest Request = (HttpWebRequest)WebRequest.Create("http://hq.sinajs.cn/list=" + SourceStocks);
            Request.Method = "Get";
            //Request.ContentType = "application/x-www-form-urlencoded";
            WebResponse Response = Request.GetResponse();
            Stream S = Response.GetResponseStream();
            StreamReader Sr = new StreamReader(S, System.Text.Encoding.GetEncoding("GB2312"));
            string ReadStrs = Sr.ReadToEnd();
            ReturnResultStrs = ReadStrs.Split(new string[] { ";\n" }, StringSplitOptions.RemoveEmptyEntries);

            return ReturnResultStrs;
        }
tanta 2014-05-21
  • 打赏
  • 举报
回复
单步-跟踪-调试,检查问题出在哪儿。
chenzhihuasilao 2014-05-21
  • 打赏
  • 举报
回复
那你看下执行后面代码的时候web服务报什么错啊。这不是已经说了远程服务器返回错误了吗
wmg494005678 2014-05-21
  • 打赏
  • 举报
回复
确实很奇怪。。
spmzfz 2014-05-21
  • 打赏
  • 举报
回复
引用 2 楼 chenzhihuasilao 的回复:
看一下string S = GetStockData("sh600345")[0];Console.WriteLine(S);这行执行的时候,WEB后台是不是报错了
执行这两行代码的时侯,不会报错的。问题就是加这2行代码的话,后面的编码可执行并不报错,但是如果不加的话,则会提示出错。我希望程序能执行后面的编码并且不报错,但是就是搞不懂这两行源码跟后面的源码的执行有什么关联?
chenzhihuasilao 2014-05-21
  • 打赏
  • 举报
回复
看一下string S = GetStockData("sh600345")[0];Console.WriteLine(S);这行执行的时候,WEB后台是不是报错了
zhangping321_123 2014-05-21
  • 打赏
  • 举报
回复
是不是还在一个线程中啊?
cms-Cloud后台管理系统 cms-Cloud 基于Spring Boot、Spring Cloud & Alibaba、OAuth2的前后端分离的后台管理系统,内置模块如:部门管理、角色用户、菜单及按钮授权、数据权限、系统参数、日志管理、代码生成等。在线定时任务配置;支持集群,支持多数据源。核心技术前端技术栈 ES6、vue、vuex、vue-router、vue-cli、axios、element-ui后端技术栈 Spring Boot、Spring Cloud & Alibaba、OAuth2系统需求JDK >= 1.8MySQL >= 5.5Maven >= 3.0主要特性1. 完全响应式布局(支持电脑、平板、手机等所有主流设备)2. 强大的一键生成功能(包括控制器、模型、视图、菜单等)3. 支持多数据源,简单配置即可实现切换。4. 支持按钮及数据权限,可自定义部门数据权限。5. 对常用js插件进行二次封装,使js代码变得简洁,更加易维护6. 完善的XSS防范及脚本过滤,彻底杜绝XSS攻击7. Maven多项目依赖,模块及插件分项目,尽量松耦合,方便模块升级、增减模块。8. 国际化支持,服务端及客户端支持9. 完善的日志记录体系简单注解即可实现技术选型1、系统环境Java EE 8Servlet 3.0Apache Maven 32、主框架Spring Boot 2.2Spring Cloud Hoxton.SR3Spring Framework 5.1Spring Security 5.13、持久层Apache MyBatis 3.4Alibaba Druid 1.14、视图层Vue 2.6Axios 0.18Element UI 2.11内置功能(1) 用户管理:用户是系统操作者,该功能主要完成系统用户配置。(2) 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。(3) 岗位管理:配置系统用户所属担任职务。(4) 菜单管理:配置系统菜单,操作权限,按钮权限标识等。(5) 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。(6) 字典管理:对系统中经常使用的一些较为固定的数据进行维护。(7) 参数管理:对系统动态配置常用参数。(8) 通知公告:系统通知公告信息发布维护。(9) 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。(10) 登录日志:系统登录日志记录查询包含登录异常。(11) 在线用户:当前系统中活跃用户状态监控。(12) 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。(13) 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。(14) 系统接口:根据业务代码自动生成相关的api接口文档。(15) 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。(16) 在线构建器:拖动表单元素生成相应的HTML代码。(17) 连接池监视:监视当期系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。 环境部署准备工作JDK >= 1.8 (推荐1.8版本)Mysql >= 5.5.0 (推荐5.7版本)Redis >= 3.0Maven >= 3.0Node >= 10nacos >= 1.1.0sentinel >= 1.6.0运行系统因为本项目是前后端分离的,所以需要前后端都启动好,才能进行访问。后端运行1、导入cms到Eclipse,菜单 File -> Import,然后选择 Maven -> Existing Maven Projects,点击 Next> 按钮,选择工作目录,然后点击 Finish 按钮,即可成功导入Eclipse会自动加载Maven依赖包,初次加载会比较慢(根据自身网络情况而定)2、创建数据库cms-cloud并导入数据脚本cms.sql(必须),quartz.sql(可选)3、创建数据库cms-config并导入数据脚本cms_config.sql(必须)4、配置nacos持久化,修改conf/application.properties文件,增加支持mysql数据源配置。# db mysqlspring.datasource.platform=mysqldb.num=1db.url.0=jdbc:mysql://localhost:3306/cms-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTCdb.user=rootdb.password=password5、打开运行基础模块(启动没有先后顺序)CmsGatewayApplication (网关模块 必须)CmsAuthApplication (认证模块 必须)CmsSystemApplication (系统模块 必须)CmsMonitorApplication (监控中心 可选)CmsGenApplication (代码生成 可选)CmsJobApplication (定时任务 可选)CmsFileApplication (文件服务 可选)前端运行# 进入项目目录cd cms-ui# 安装依赖npm install# 强烈建议不要用直接使用 cnpm 安装,会有各种诡异的 bug,可以通过重新指定 registry 来解决 npm 安装速度慢的问题。npm install --registry=https://registry.npm.taobao.org 本地开发 启动项目npm run dev打开浏览器,输入:http://localhost:80 (默认账户 admin/admin123)若能正确展示登录页面,并能成功登录,菜单及页面展示正常,则表明环境搭建成功提示前端安装完node后,最好设置下淘宝的镜像源,不建议使用cnpm(可能会出现奇怪问题)部署系统因为本项目是前后端分离的,所以需要前后端都部署好,才能进行访问后端部署bin/package.bat 在项目的目录下执行然后会在项目下生成 target文件夹包含 war 或jar1、jar部署方式使用命令行执行:java –jar xxxx.jar 或者执行脚本:bin/run.bat2、war部署方式pom.xml packaging修改为war 放入tomcat服务器webapps提示SpringBoot去除内嵌tomcat前端部署当项目开发完毕,只需要运行一行命令就可以打包你的应用# 打包正式环境npm run build:prod# 打包预发布环境npm run build:stage构建打包成功之后,会在根目录生成 dist 文件夹,里面就是构建打包好的文件,通常是 ***.js 、***.css、index.html 等静态文件。通常情况下 dist 文件夹的静态文件发布到你的 nginx 或者静态服务器即可,其中的 index.html 是后台服务的入口页面。环境变量所有测试环境或者正式环境变量的配置都在 .env.development (opens new window)等 .env.xxxx文件中。它们都会通过 webpack.DefinePlugin 插件注入到全局。常见问题如果使用Mac 需要修改application.yml文件路径profile如果使用Linux 提示表不存在,设置大小写敏感配置在/etc/my.cnf 添加lower_case_table_names=1,重启MYSQL服务如果提示当前权限不足,无法写入文件请检查profile是否可读可写,或者无法访问此目录

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧