いままで
data() = Form1.Inet1.OpenURL(, icByteArray)
Put #FileNum, , data()
という処理でデータを取得していたところを
HTTP-REFERERの設定の為Inet.Executeでの取得に直したいと思うのですが、
エクゼキュートの使い方(特にoperationのところ)がわかりません。
MSDNなどを参考にして
Inet1.Execute , "GET", data(), Ref & vbCrLf
と打ってみましたが「タイプは強制的には指定できません」というエラーがでます。
data()は最終的なデータの格納先でバイト型の配列です。
Refはストリング型で"http"から始まるURLが挿入されています。
ExecuteのURLの項目は少し前にInet1.URLで設定してあり省略してあります。
InetのHTTP通信詳しい方ご教授願います。
開発環境はVB6.0(SP5)でOSはXPです。
4番目の引数で
Inet1.Execute , "GET", data(),, Ref & vbCrLf
Inet1.Execute , "GET", data(), Ref & vbCrLf
を指示通りdata()の後に,を追加して実行してみましたが、
「引数の型が一致していないか不正なプロパティを参照している」
というエラーが表示されました。
MSDNを見る限り、引数はurl,operation,data,requestHeadersと
並んでいるのですが、まだ何か足りない引数があるのでしょうか?
失礼しました。
1番目の引数にURLを指定していないのが原因ですね。
第3引数は空にしてください。
データはInet1_StateChangedで取得します。
http://madia.world.coocan.jp/vb/vb_bbs/200309_03090050.html
X_File様の助言を受け、昼から試行錯誤したところ、
やっと動ける形までたどりつけました。本当に感謝しています。
しかし、動作テストを行ったところ、
どうもリクエストヘッダーの部分が
無視されているような気がしてなりません。
きちんとHTTP-REFERERが設定されているか確かめたいのですが、
ローカルウィンドウにもそれらしき表示が無く、難航しています。
変数 Refは
Ref="HTTP-REFERER : " & Text3.Text
'テキスト3は"http"から始まる参照元URLの入力用のテキストボックス
といった感じにエグゼキュート実行前に設定されてるのですが、
ここに無視される原因があるのでしょうか?
> Ref="HTTP-REFERER : " & Text3.Text
原因はそこかな?
http://madia.world.coocan.jp/vb/vb_bbs2/200307_03070049.html
ここだったのか・・・。
"HTTP-REFERER : "ではなく"Referer: "だったんですね。
最初は仮面弁士さんのURLのページを見て"Referer: "でやってたのですが、
検索でヒットしたページの情報を鵜呑みにしてしまい。
"HTTP-REFERER : "と記述してしまったようです。忘れてました。
動作テストも期待通り動いてくれました。
これから使いやすさを高めるところに入っていきます。
お二方とも本当にありがとうございました。
ツイート | ![]() |