2016-07-14 4 views
1

パワークエリー式言語を使用して、パワーバイでAPIからデータを取得しようとしています。パワークエリ式の言語でクエリ文字列としてリクエストオブジェクトを渡す方法

私のコードは次のとおりです。

let 
obj= "{ ""dataset"": ""mydataset"",""queries"": [ { ""type"": ""single_measurement"", ""measure"": { ""aggregator"": ""unique_count"", ""column"": ""visitor_id"" } } ], ""start"":1451638800000,""end"":1468430640000,""max_groups"":1000,""group_by"":[""extrhike""]}", 
authKey = "Token js+JG/FaGiZcFZPVAsAXmN+d20000", 
url = "https:// myhostaddress.cloudapp.azure.com/api/v1/query?query=obj", 

GetJson = Json.Document(Web.Contents(url,[Headers = [#"Authorization"=authKey, #"Content-Type"="application/json"]])) 

in 
GetJson 

私は、私は、クエリ文字列値としてOBJを渡すことができません

https://myhostaddress.cloudapp.azure.com/api/v1/query?query={ "dataset": "mydataset","queries": [ { "type": "single_measurement", "measure": { "aggregator": "unique_count", "column": "visitor_id" } } ], "start":1451638800000,"end":1468430640000,"max_groups":1000,"group_by":["extrhike"]} 

を次のようなクエリ文字列としてデータリクエストオブジェクト(OBJ)を渡したいです次のエラーが発生しました

DataFormat.Error: Invalid URI: The hostname could not be parsed. 
Details: 
https:// myhostaddress.cloudapp.azure.com/api/v1/query?query=obj 

リクエストオブジェクト(obj)をクエリstri Power Query Formula Language(パワークエリーフォーミュラ言語)

ありがとうございます。

+0

を追加し、あなたのデータがGETとして送信されますか?たぶんPOST? –

答えて

0

あなたは文字列を一緒に追加する必要があります。 url = "https:// myhostaddress.cloudapp.azure.com/api/v1/query?query=" & obj,である必要があります。

1

Web.ContentsのQuery引数を使用してクエリパラメータを渡してみましたか?例えば

let 
    Url = "https:// myhostaddress.cloudapp.azure.com" 
    Request = Json.Document(Web.Contents(url, 
              [Headers = 
                 [#"Authorization"=authKey, 
                 #"Content-Type"="application/json"], 
              RelativePath = "/api/v1/query", 
              Query = [ 
                 <insert record here of your query object> 
                ] 
              ] 

については

クエリレコードの例は次のようになります。

あなたがここにオプションについて読むことができます
Query = [#"Argument 1" = "Foo", #"Argument 2" = "Bar", limit = "1000", skip="500"] 

https://msdn.microsoft.com/en-us/library/mt260892.aspx

0

この

を使用してみてくださいそれはクエリを取得する代わりにコンテンツをPOSTします

let 
    obj = "{ ""dataset"": ""mydataset"",""queries"": [ { ""type"": ""single_measurement"", ""measure"": { ""aggregator"": ""unique_count"", ""column"": ""visitor_id"" } } ], ""start"":1451638800000,""end"":1468430640000,""max_groups"":1000,""group_by"":[""extrhike""]}", 
    authKey = "Token js+JG/FaGiZcFZPVAsAXmN+d20000", 
    url = "https:// myhostaddress.cloudapp.azure.com/api/v1/query", 

    GetJson = Json.Document(Web.Contents(url,[ 
     Headers = [#"Authorization"=authKey, #"Content-Type"="application/json"], 
     Content = Text.ToBinary(obj) 
    ])) 
in 
    GetJson 
0

あなたはまた、この

を使用することができますこれは、パーセント文字列にobjを脱出し、「クエリー」パラメータに

let 
    obj= "{ ""dataset"": ""mydataset"",""queries"": [ { ""type"": ""single_measurement"", ""measure"": { ""aggregator"": ""unique_count"", ""column"": ""visitor_id"" } } ], ""start"":1451638800000,""end"":1468430640000,""max_groups"":1000,""group_by"":[""extrhike""]}", 
    authKey = "Token js+JG/FaGiZcFZPVAsAXmN+d20000", 
    url = "https:// myhostaddress.cloudapp.azure.com/api/v1/query?query="&Uri.EscapeDataString(obj), 

    GetJson = Json.Document(Web.Contents(url,[Headers = [#"Authorization"=authKey, #"Content-Type"="application/json"]])) 
in 
    GetJson 
関連する問題