gpt4 book ai didi

azure - 使用 php 将 .pbix (power BI) 文件导入工作区(多部分表单数据发布)

转载 作者:行者123 更新时间:2023-12-03 05:54:50 26 4
gpt4 key购买 nike

我想将本地 pbix 文件导入到 azure power bi 帐户中创建的工作区。我已经使用 REST API 创建了workspaceId。但是,当我尝试导入 pbix 文件时,该文件给出 200 ok 状态,而不是 202 接受的带有 Id 的响应。

这是我遵循的引用代码enter link description here

POST https://api.powerbi.com/v1.0/collections/mypbiapp/workspaces/32960a09-6366-4208-a8bb-9e0678cdbb9d/imports?datasetDisplayName=mydataset01Authorization: AppKey MpaUgrTv5e... Content-Type: multipart/form-data;boundary="A300testx"

--A300testx Content-Disposition: form-data

{the content (binary) of .pbix file}--A300testx--

我使用 php curl 请求调用 Rest API,下面显示了我尝试过的代码,

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.powerbi.com/v1.0/collections/XXXXXX/workspaces/XXX-XXX-XXX-XXXXXXXX/imports?datasetDisplayName=mydataset01');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$postData = array(
'datafile' => '@C:\Users\Desktop\report1.pbix',
);

curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt ( $ch, CURLOPT_HTTPHEADER, array (
"Authorization: AppKey R97v4Fe5=="
) );
curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false );
echo $response = curl_exec($ch);

curl_close ( $ch );

作为响应,我收到的状态代码为 200 ok with json

{"id":"0331a80d-6f23-4626-9624-1f6b98ce373a"}

但是这个新数据集不是在workspaceID 中创建的。请帮我找到这里的问题。

最佳答案

这是使用 php curl 进行多部分表单数据发布的答案,此代码对我有用

$name = 'report1';
$file = 'report1.pbix';
$boundary = "----------BOUNDARY";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.powerbi.com/v1.0/collections/XXXXXX/workspaces/XXX-XXX-XXX-XXXXXXXX/imports?datasetDisplayName=mydataset01');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$postdata .= "--" . $boundary . "\r\n";
$postdata .= "Content-Disposition: form-data; name=\"" . $name . "\"; filename=\"" . $file . "\"\r\n";
$postdata .= "Content-Type: application/octet-stream\r\n\r\n";
$postdata .= file_get_contents($file);
$postdata .= "\r\n";
$postdata .= "--" . $boundary . "--\r\n";

curl_setopt($ch, CURLOPT_POSTFIELDS, $$postdata);
curl_setopt ( $ch, CURLOPT_HTTPHEADER, array (
"Authorization: AppKey R97v4Fe5==",
'Content-Type: multipart/form-data; boundary='.$boundary,
'Content-Length: ' . strlen($postdata)
) );
curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false );
echo $response = curl_exec($ch);

curl_close ( $ch );

关于azure - 使用 php 将 .pbix (power BI) 文件导入工作区(多部分表单数据发布),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42993558/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com