タイトル : Re: VBA MSXML2.xmlHttp でエラー 投稿日 : 2011/12/12(Mon) 00:47 投稿者 : 魔界の仮面弁士
> url = "" 'ここにURLを記述 どのサイトでもエラーになりますか? VBA 等からの MSXML や WinHTTP によるリクエストをブロックするタイプの セキュリティソフトもあるようなので、その場合は、お使いのソフトで 除外設定が必要になるかも知れません。 > Call xmlHttp.Open("GET", url, False) > Call xmlHttp.send(vbNull) vbNull って、Long 型の「1」と同義ですよね。 何故そんな物を渡しているのでしょうか? "GET" メソッドの実行時は、リクエスト ボディを含めないでください。 また、たとえそれ以外のメソッド(たとえば "POST")をリクエスト する場合であっても、Send メソッドに渡すことができる型は ・文字列 ・Byte配列 ・IStream(XML DOMDocument 等) に限られており、Long 値はサポートされていません。 > html = xmlHttp.responseText > 「実行時エラー '-1072896658(c00ce56e)':」 > 「システムエラー:-1072896658」 利用不可能なエンコードを呼び出した場合に、0xc00ce56e が出ることがあります。 そのサイトが返す文字コードは何でしょうか? responseText プロパティは、 基本的に UTF-8 で処理しようとします(BOM がついている場合には、 UCS-2、UCS-4 もサポートされます)。しかしそれ以外の文字コードの場合、 MSXMLのバージョンにもよっては、文字コード判定に失敗することがよくあります。 (そもそも、サーバー側が正しい Charset を返していないというケースもありますし) そのため、非UTF-8 なサイトを対象とする場合には、responseBody プロパティから バイト配列を得て、自分でデコードすることも視野に入れておいた方が良いでしょう。 |