1

我有一个 WindowsApplication 项目,其中 Reference-folder 缺少文件。我已经将它与我确实找到该文件的另一个项目进行了比较,它应该在这里找到:References->System->System.Net->HttpWebRequest

如何将此文件添加到我的项目中,为什么它没有自动加载,我做错了什么?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace GetStockData
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            string ticker = this.tbTicker.Text;
            DateTime startDate = this.dtpStart.Value;
            DateTime endDate = this.dtpEnd.Value;

            int startMonth = startDate.Month - 1;
            int endMonth = endDate.Month - 1;
            string theURL = @"http://ichart.finance.yahoo.com/table.csv?s=" 
                + ticker + @"&a=" + startMonth.ToString() + @"&b=" + startDate.Day.ToString() 
                + @"&c=" + startDate.Year.ToString() + @"&d=" + endMonth.ToString() + @"&e=" + endDate.Day.ToString() 
                + @"&f=" + endDate.Year.ToString() + @"&g=d&ignore=.csv";

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(theURL);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            Stream resStream = response.GetResponseStream();
            StringBuilder sb = new StringBuilder();
            byte[] buf = new byte[8192];
            string tempString = null;
            int count = 0;

            do {
                count = resStream.Read(buf, 0, buf.Length);
                if (count != 0) {
                    tempString = Encoding.ASCII.GetString(buf, 0, count);
                    sb.Append(tempString);
                    }
            }
            while (count > 0);
            string data = sb.ToString();
            String[] data2 = data.Split('\n');
            int iteration = 0;
            dates = new DateTime[data2.Length - 2];
            open = new double[data2.Length - 2];
            high = new double[data2.Length - 2];
            low = new double[data2.Length - 2];
            close = new double[data2.Length - 2];
            volume = new double[data2.Length - 2];
            adjClose = new double[data2.Length - 2];
            foreach (string strLine in data2)
            {
                String[] entries = strLine.Split(',');
                if ((iteration != 0) && (entries[0] != ""))
                {
                    dates[iteration - 1] = System.Convert.ToDateTime(entries[0]);
                    open[iteration - 1] = System.Convert.ToDouble(entries[1]);
                    high[iteration - 1] = System.Convert.ToDouble(entries[2]);
                    low[iteration - 1] = System.Convert.ToDouble(entries[3]);
                    close[iteration - 1] = System.Convert.ToDouble(entries[4]);
                    volume[iteration - 1] = System.Convert.ToDouble(entries[5]);
                    adjClose[iteration - 1] = System.Convert.ToDouble(entries[6]);
                }
                iteration = iteration + 1;
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {

        }
    }
}

亲切的问候埃斯彭

4

2 回答 2

6

我做错了什么吗?

您忘记添加:

using System.Net;

为了将HttpWebRequest定义类的名称空间带入范围。

于 2013-06-11T11:25:15.267 回答
0
namespace GetStockData
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            string ticker = this.tbTicker.Text;
            DateTime startDate = this.dtpStart.Value;
            DateTime endDate = this.dtpEnd.Value;

            int startMonth = startDate.Month - 1;
            int endMonth = endDate.Month - 1;
            string theURL = @"http://ichart.finance.yahoo.com/table.csv?s=" 
            + ticker + @"&a=" + startMonth.ToString() + @"&b=" + startDate.Day.ToString() 
            + @"&c=" + startDate.Year.ToString() + @"&d=" + endMonth.ToString() + @"&e=" + endDate.Day.ToString() 
            + @"&f=" + endDate.Year.ToString() + @"&g=d&ignore=.csv";

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(theURL);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            Stream resStream = response.GetResponseStream();
            StringBuilder sb = new StringBuilder();
            byte[] buf = new byte[8192];
            string tempString = null;
            int count = 0;

            do {
                count = resStream.Read(buf, 0, buf.Length);
                if (count != 0) {
                    tempString = Encoding.ASCII.GetString(buf, 0, count);
                    sb.Append(tempString);
                }
            }
            while (count > 0);
            string data = sb.ToString();
            String[] data2 = data.Split('\n');
            int iteration = 0;
            dates = new DateTime[data2.Length - 2];
            open = new double[data2.Length - 2];
            high = new double[data2.Length - 2];
            low = new double[data2.Length - 2];
            close = new double[data2.Length - 2];
            volume = new double[data2.Length - 2];
            adjClose = new double[data2.Length - 2];
            foreach (string strLine in data2)
            {
                String[] entries = strLine.Split(',');
于 2016-06-27T12:15:34.547 回答