Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Visual Studio中出现错误:“0”;System.Net.Http.HttpRequestException“;_C#_Visual Studio 2012 - Fatal编程技术网

C# Visual Studio中出现错误:“0”;System.Net.Http.HttpRequestException“;

C# Visual Studio中出现错误:“0”;System.Net.Http.HttpRequestException“;,c#,visual-studio-2012,C#,Visual Studio 2012,我想通过API读取魔兽世界军械库的数据信息 我有以下代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Net; using System.Net.Http; using System.Json; using System.Diagnostics; using System.IO; n

我想通过API读取魔兽世界军械库的数据信息

我有以下代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Net.Http;
using System.Json;
using System.Diagnostics;
using System.IO;

namespace CacheBuilder
{
    class WebResult
    { //Holds the status information, and Item info for each Request
        public string Item = null;
        public string Status = null;
        public WebResult(string Status) { this.Status = Status; }
    }

    class Program
    {
        private const string ITEMS_FILE = @"Items.txt";
        private const string STATUS_FILE = @"Status.txt";

        private static async Task WriteTextAsync(string filePath, string text)
        { //Writes to our output files
            using (TextWriter writer = File.CreateText(filePath))
            {
                await writer.WriteAsync(text);
            }
        }

        private static HttpClient client = new HttpClient();
        private static async Task<WebResult> AccessTheWebAsync(int ItemID)
        {
            HttpResponseMessage response = await client.GetAsync("http://us.battle.net/api/wow/item/" + ItemID).ConfigureAwait(false);
            WebResult wr = new WebResult(String.Format("{0}\t{1}", ItemID, (int)response.StatusCode)); //Store Item ID and response code           
            if (response.StatusCode == HttpStatusCode.OK) //If Code was OK
            {
                var responseValue = await response.Content.ReadAsStringAsync();
                var json = JsonValue.Parse(responseValue); //Parse Json with System.Json
                wr.Item = String.Format("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\t{7}",
                (int)json["id"], (string)json["name"], (int)json["buyPrice"], (int)json["sellPrice"],
                (int)json["itemLevel"], (int)json["itemClass"], (int)json["itemSubClass"],
                json["isAuctionable"].ToString().Equals("true") ? 1 : 0);
            }
            return wr;
        }

        private static StringBuilder Items = new StringBuilder();
        private static StringBuilder Status = new StringBuilder();
        static void Main(string[] args)
        { //Entry Point
            Stopwatch sw = new Stopwatch();
            sw.Start();
            Console.WriteLine(ServicePointManager.DefaultConnectionLimit);
            List<Task> tasks = new List<Task>();

            for (int i = 1; i <= 100000; i++)
            { //For Item ID's 1 through 100000
                tasks.Add(AccessTheWebAsync(i));
                if (i % 1000 == 0) //Pause until the current batch of 1000 is done
                    Task.WaitAll(tasks.ToArray()); 
            }
            Task.WaitAll(tasks.ToArray());

            foreach (Task<WebResult> t in tasks)
            {
                Status.Append(t.Result.Status).Append(Environment.NewLine);
                if (t.Result.Item != null) Items.Append(t.Result.Item).Append(Environment.NewLine);
            }



            List<Task> fileWrites = new List<Task>() { //Output our Final Files
                WriteTextAsync(ITEMS_FILE, Items.ToString()), //Log of all Items
                WriteTextAsync(STATUS_FILE, Status.ToString()) //Log of all response codes
            };
            Task.WaitAll(fileWrites.ToArray());
            sw.Stop();
            Console.WriteLine("Run Completed, Time elapsed: {0}", sw.Elapsed);
            Console.ReadLine();
        }
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
Net系统;
使用System.Net.Http;
使用System.Json;
使用系统诊断;
使用System.IO;
命名空间缓存生成器
{
类WebResult
{//保存每个请求的状态信息和项目信息
公共字符串项=null;
公共字符串状态=null;
公共WebResult(字符串状态){this.Status=Status;}
}
班级计划
{
private const string ITEMS_FILE=@“ITEMS.txt”;
private const string STATUS_FILE=@“STATUS.txt”;
专用静态异步任务WriteTextAsync(字符串文件路径,字符串文本)
{//写入我们的输出文件
使用(TextWriter=File.CreateText(filePath))
{
wait writer.WriteAsync(文本);
}
}
私有静态HttpClient=新HttpClient();
私有静态异步任务访问WebAsync(int-ItemID)
{
HttpResponseMessage response=await client.GetAsync(“http://us.battle.net/api/wow/item/“+ItemID).配置等待(false);
WebResult wr=newwebresult(String.Format({0}\t{1}),ItemID,(int)response.StatusCode));//存储项ID和响应代码
if(response.StatusCode==HttpStatusCode.OK)//如果代码正常
{
var responseValue=await response.Content.ReadAsStringAsync();
var json=JsonValue.Parse(responseValue);//使用System.json解析json
wr.Item=String.Format(“{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\t{7}”,
(int)json[“id”],(string)json[“name”],(int)json[“buyPrice”],(int)json[“sellPrice”],
(int)json[“itemLevel”],(int)json[“itemClass”],(int)json[“itemSubClass”],
json[“isAuctionable”].ToString().Equals(“true”)?1:0;
}
返回wr;
}
私有静态StringBuilder项=新StringBuilder();
私有静态StringBuilder状态=新建StringBuilder();
静态void Main(字符串[]参数)
{//入口点
秒表sw=新秒表();
sw.Start();
Console.WriteLine(ServicePointManager.DefaultConnectionLimit);
列表任务=新列表();

对于(inti=1;i)如果您查看异常的详细信息,它是否有InnerException?如果是,它是什么?InnerException{“Die Verbindung mit dem Remoteserver kann nicht hergestellt werden.”System.Exception{System.Net.WebException}这意味着“它无法与远程服务器建立连接”,这意味着“它无法与远程服务器建立连接”-Hertus 1分钟前编辑,错误消息非常清楚:它无法到达服务器。检查您的网络,检查服务器的地址等。是的,url工作正常,没有网络问题(我禁用了防火墙等)。还有其他可能性吗?