はじめまして。もおもおと申します。
テスト環境でプロキシサーバを通さずにxmlhttpを使用して
サーバとのやり取りが成功していました。
が、プロキシを使用するクライアント(不特定多数)を想定して
プロキシを立てULRだけ変えて(ちなみにhttps)送信したら
サーバとやり取りができなくなりました。
そもそもxmlhttpではプロキシサーバ経由で処理ができないのでしょうか?
調べ方が下手なせいか、原因がわからず困っています。
宜しくお願いします。
ちなみにこんな感じです。
Set XMLhttp = CreateObject("Microsoft.xmlhttp")
XMLhttp.Open "POST", "https://AAAA.BBBB.co.jp/UUU/UUU", False
s = "ーーーーー"
XMLhttp.setRequestHeader "Content-Type", "text/xml"
XMLhttp.Send CVar(s)
.Sendで「オートメーションエラーです」となってしまいます。
xmlHTTP自体がurlmon.dllやwininet.dllに依存しているようです。
(使ったこと無いのでよくわかりませんが)
なので、こんなのはどうなんでしょうか?
=============================
'宣言
Type INTERNET_PROXY_INFO
dwAccessType As Long
lpszProxy As String
lpszProxyBypass As String
End Type
private Declare Sub UrlMkSetSessionOption Lib "urlmon.dll" _
(ByVal dwOption As Long, pBuffer As Any, _
ByVal dwBufferLength As Long, _
ByVal dwReserved As Long)
Const INTERNET_OPEN_TYPE_PRECONFIG = 0
Const INTERNET_OPEN_TYPE_DIRECT = 1
Const INTERNET_OPEN_TYPE_PROXY = 3
======================================
'プロシージャとかで
Dim options As INTERNET_PROXY_INFO
options.dwAccessType =INTERNET_OPEN_TYPE_PROXY
options.lpszProxy = Proxy
options.lpszProxyBypass = ""
UrlMkSetSessionOption internet_option_proxy, options, LenB(options), 0
==============
おしまい。
InternetSetOptionも同様に使えると思います。
すいません、ProxyはString型の"XXX.XXX.XXX.XXX:8080"
などです。宣言してません。
Const internet_option_proxy = 38
入れ忘れました。
ツイート | ![]() |