現在イントラネットで文書が公開されているのですが
CGIの受け渡し方法がPOSTであるため、
GETの時のようにURLを変更してHTMLデータが取得できません。
VB6なのですが、どなたかご教授していただけないでしょうか?
VB6で良く使われる物としては、
InetコントロールのExecuteメソッド
WebBrowserコントロールのNavigate2メソッド
XMLHTTPオブジェクトのopenメソッド
などが、POSTメソッドによるデータ転送に対応していますので、それらを利用されると良いでしょう。
例えば、XMLHTTPを利用する場合は、
Set X = CreateObject("MSXML2.XMLHTTP")
X.Open "POST", "http://〜〜/", False
X.send "name=hoge"
という感じですね。
あ、Content-Typeを指定するのを忘れていました。m(_ _)m
Set X = CreateObject("MSXML2.XMLHTTP")
X.Open "POST", "http://〜〜/", False
X.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
X.send "name=hoge"
'この後で、responseBodyプロパティ等を使って内容を読み出す
便乗質問すみません。
魔界の仮面弁士さんの書いたソースで、CGIにPOSTでデータを送ることができました。しかし全角文字を送ると文字化けが出ます。
Set X = CreateObject("MSXML2.XMLHTTP")
X.Open "POST", "http://〜〜/", False
X.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
X.Send "item=モニター"
を送ると、「繝「繝九ち繝シ」と表示されてしまいます。
解決方法がありましたらご伝授願います。
文字化けする時には、
化けてしまう文字列のエンコードが何か意識しましょう。
確認すればおのずと解決は出来るはず。
いなさん、返答ありがとうございます。
windowsは、S-JIS?。ホームページは、EUC-JPだったので、その違いかな?と思い、VBでEUC-JPに変換するプログラムを探したのですが、見つかりませんでした。
もうちょっと探してみようと思っていますが、方向的に合っていますか?
ホームページの方をS-JIS変更することは出来なかったので、VBの方を変えるしかないと思うのですが・・・
まず、InetSpyなどを使って、ブラウザからの送信時には、どのようなデータ(送信ヘッダ & ボディ)が送られているのかを確認しましょう。まずはそこからです。
POSTするフォーム側の記述によって、送信データが(データがEUC-JPなのか、Shift_JISなのか、UTF-8なのかといった問題とは別で)、元のバイナリが無変換で送られる場合もあれば、内容がURLエンコードされて送信される場合もありますので。
なお、文字コードの変換については、ADODB.Streamオブジェクトを使う事ができます。過去ログで探してみてください。
魔界の仮面弁士さん返答ありがとうございます。
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200401/04010054.txt
の魔界の仮面弁士さんのプログラムでできる様になりました。
ありがとうございます。
便乗質問なので、解決はチェックできませんが、ぱたぱた的に解決しました。