Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.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# 使用GetResponse()时出现协议冲突异常_C#_Powerbi - Fatal编程技术网

C# 使用GetResponse()时出现协议冲突异常

C# 使用GetResponse()时出现协议冲突异常,c#,powerbi,C#,Powerbi,我一直在尝试按照Dev Power BI的说明从我的控制台应用程序创建一个Datatset,但不断出现以下异常: “在调用[Begin]GetResponse之前,必须为请求流写入ContentLength字节”。 下面是书面代码 private static void CreateDataset() { string PowerBIDatasetsApiUrl = "https://api.powerbi.com/v1.0/myorg/data

我一直在尝试按照Dev Power BI的说明从我的控制台应用程序创建一个Datatset,但不断出现以下异常:

“在调用[Begin]GetResponse之前,必须为请求流写入ContentLength字节”。 下面是书面代码

             private static void CreateDataset()
    {
        string PowerBIDatasetsApiUrl = "https://api.powerbi.com/v1.0/myorg/datasets";

        HttpWebRequest request = System.Net.WebRequest.Create(PowerBIDatasetsApiUrl) as System.Net.HttpWebRequest;
        request.KeepAlive = true;
        request.Method = "POST";
        request.ContentLength = 0;
        request.ContentType = "application/json";

        request.Headers.Add("Autorization", String.Format("Bearer {0}", token));


        string datasetJson = "{\"name\": \"SalesMarketing\", \"tables\": " +
            "[{\"name\": \"product\", \"columsa\":" +
            "[{\"name\": \"productID\", \"dataType\": \"Int64\"}, " +
            "[{\"name\": \"category\", \"dataType\": \"string\"}, " +
            "[{\"name\": \"IsCompete\", \"dataType\": \"bool\"}, " +
            "[{\"name\": \"ManufacturedOn\", \"dataType\": \"DateTime\"}" +
            "]}]}";

        byte[] byteAray = System.Text.Encoding.UTF8.GetBytes(datasetJson);
        request.ContentLength = byteAray.Length;

        using (Stream writer = request.GetRequestStream())
        {

            writer.Write(byteAray, 0, byteAray.Length);
            var response = (HttpWebResponse)request.GetResponse();
            Console.WriteLine(string.Format("Dataset {0}", response.StatusCode.ToString()));
            Console.ReadLine();
        }
    }

在调用
Write
后,尝试调用
writer.Flush()
,以确保所有数据都已写入流中。刚刚这样做了,但不幸的是,这对我没有帮助。