簡體   English   中英

如何使用Power Query的Web發布目錄/表單數據

[英]How to POST a multipart/form-data using Power Query's Web.Contents

在Power Query中,我可以使用Web.Contents函數從Web下載數據,但是有一個api要求請求包含以下格式的多部分/表單數據

"__rdxml"=<*Some data*>

那么如何使用Web.Contents函數來做到這一點呢?

我嘗試過

...
PostContent = "__rdxml=<*Some data*>",
Source Web.Contents(url,Content=Text.ToBinary(PostContent))
...

但是服務器響應為400 Bad Request

我用Fiddler檢查了原始請求,似乎該請求未使用content-type=multipart/form-data標頭發送。

我嘗試用content-type=multipart/form-data手動添加content-type標頭,但這也不起作用。 響應中的相同400 Bad Request

任何想法?

multipart / form-data是一種相當復雜的編碼,需要一堆特定於MIME的標頭。 我首先嘗試看看您是否可以使用application / x-www-form-urlencoded代替:

let
    actualUrl = "http://some.url",
    record = [__rdxml="some data"],
    body = Text.ToBinary(Uri.BuildQueryString(record)),
    options = [Headers =[#"Content-type"="application/x-www-form-urlencoded"], Content=body],
    result = Web.Contents(actualUrl, options)
in
    result

編輯:我想出了一個使用Power Query的multipart / form-data的示例。 https://gist.github.com/CurtHagenlocher/b21ce9cddf54e3807317

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM