如何使用Power Query的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
的内容types标题,但是这也不起作用。 相同的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