首页 > 解决方案 > Power Bi UpdateDatasourceWithHttpMessagesAsync 操作返回无效状态代码“BadRequest”

问题描述

我正在尝试使用 UpdateDatasourceWithHttpMessagesAsync 方法更新 power bi 中的数据集凭据。但我面临着问题Operation returned an invalid status code 'BadRequest'。我在 Azure API 中添加了以下权限。请帮忙。

在此处输入图像描述

public static HttpStatusCode UpdateCredentials(string datasetId, string reportId, string userName, string password, string workspaceId)
    {
        var tokenCredentials = GetTokenCredentials();

        var updateDatasourceRequest = new UpdateDatasourceRequest()
        {
            CredentialDetails = new CredentialDetails()
            {
                Credentials = "{\'credentialData\':[{\'name\':\'username\', \'value\':\' " + userName + "\'},{\'name\':\'password\', \'value\':\'" + password + "\'}]}",
                CredentialType = "Basic",
                EncryptedConnection = "Encrypted",
                EncryptionAlgorithm = "None",
                PrivacyLevel = "None"
            }
        };

        string restUrlDatasetToUpdate = ApiUrl + "v1.0/myorg/datasets/" + datasetId + "/";
        string restUrlDatasetDefaultGateway = restUrlDatasetToUpdate + "Default.GetBoundGatewayDataSources";
        string jsonDefaultGateway = ExecuteGetRequest(restUrlDatasetDefaultGateway, tokenCredentials.Item2);
        Gateway defaultGateway = (JsonConvert.DeserializeObject<GatewayCollection>(jsonDefaultGateway)).value[0];
        string restUrlPatchCredentials = ApiUrl + "v1.0/myorg/" + "gateways/" + defaultGateway.gatewayId + "/" + "datasources/" + defaultGateway.id + "/";
        DataSourceCredentials dataSourceCredentials =
        new DataSourceCredentials
        {
            credentialType = "Basic",
            basicCredentials = new BasicCredentials
            {
                Username = userName,
                Password = password
            }
        }; 
        using (var client = new PowerBIClient(new Uri(ApiUrl), tokenCredentials.Item1))
        {
            var res = client.Gateways.UpdateDatasourceWithHttpMessagesAsync(defaultGateway.gatewayId, defaultGateway.id, updateDatasourceRequest).Result;//facing issue here                
            return res.Response.StatusCode;
        }

    }

标签: c#azurepowerbi

解决方案


推荐阅读