3

Power Query では、Web.Contents 関数を使用して Web からデータをダウンロードできますが、要求に次の形式の multipart/form データを含める必要がある API があります。

"__rdxml"=<*Some data*>

では、Web.Contents 関数を使用してこれを行うにはどうすればよいでしょうか。

私はやってみました

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

しかし、サーバーの応答は400 Bad Request.

content-type=multipart/form-dataFiddler で raw リクエストを確認しましたが、リクエストがヘッダーで送信されていないようです。

で content-type ヘッダーを手動で追加しようとしましcontent-type=multipart/form-dataたが、それも機能しません。400 Bad Request応答でも同じです。

何か案が?

4

1 に答える 1

9

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にあります

于 2015-02-08T09:00:16.920 に答える