如何使用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