10

API にアクセスできます。API は XML 投稿を入力として受け取り、関連データを含む XML 応答を返します。

したい

  1. HTTP Post をサーバーに送信します (認証とリクエストは一緒に送信されます)
  2. 応答を受け取る (返されるオプションの 1 つは CSV または XML)
  3. データを適切な行と列に挿入し、ピボット テーブルを使用してデータ分析を実行します。

Excel のプログラミング経験はありませんが、さまざまな Web スクリプト言語、HTML、CSS、Javascript などには慣れています。

何か案は?

4

4 に答える 4

8

Excelリクエスト側は、このVBAコードで処理できます。

Sub GetStuff()

Dim objXML As Object
Dim strData As String
Dim strResponse As String

 strData = "Request"
 Set objXML = CreateObject("MSXML2.XMLHTTP")

 objXML.Open "POST", "www.example.com/api?" & strData, False
 objXML.Send
 strResponse = objXML.responsetext

MsgBox strResponse

End Sub
于 2009-11-30T18:26:46.983 に答える
8

入力xmlをメッセージ本文として送信する必要がある場合は、次の方法で送信できます。リクエストヘッダーを追加または変更して、機能させる必要がある場合があります。

DOMDocumentオブジェクトを使用すると、xmlドキュメントを簡単に操作できます。

にプロジェクト参照を追加します。

  • Microsoft WinHTTP Services、バージョン5.1
  • Microsoft XML、v6.0

例:

Dim xmlInput As String
xmlInput = "<YourXmlRequest></YourXmlPayload>"

Dim oXmlHttp As MSXML2.XMLHTTP60
Set oXmlHttp = New MSXML2.XMLHTTP60

oXmlHttp.Open "POST", serviceURL, False, "UserName", "Password"
oXmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
oXmlHttp.setRequestHeader "Connection", "Keep-Alive"
oXmlHttp.setRequestHeader "Accept-Language", "en"

oXmlHttp.send xmlInput

Debug.Print oXmlHttp.responseText

Dim oXmlReturn As MSXML2.DOMDocument60
Set oXmlReturn = New MSXML2.DOMDocument60
oXmlReturn.loadXML oXmlHttp.responseText
于 2009-12-02T14:03:14.780 に答える
3

これは私が最終的に使用したものです:

Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
objHTTP.Open "POST", urlPath, False
objHTTP.setRequestHeader "Content-Type", "text/xml"
objHTTP.send (request)
于 2009-12-18T21:47:48.693 に答える