tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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 プロパティから
バイト配列を得て、自分でデコードすることも視野に入れておいた方が良いでしょう。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。