WininetAPIでクライアントからサーバにデータ送信するには?

解決


なー  2004-04-23 01:55:24  No: 83100  IP: [192.*.*.*]

こんにちは。
現在クライアントのVBからデータを送信、ASP(VBScript)でDB更新を行い
処理結果を受け取るという処理をしています。
WininetAPIのHttpSendRequest関数でASPにデータを送れそうで、
第4引数にデータを設定すればよいのかと思いますが、複数の項目はどうやって
指定したらよいのでしょうか?
ネットワークもASPも初心者で、かなり調べましたが分かりません。
ご存知の方がおりましたらアドバイスをお願いします。(Win2k,VB6 SP5)

    ' HTTPリクエストのハンドルを開く
    lngHttpOpenRequestHandle = _
        HttpOpenRequest(lngInternetConnectHandle, _
                        "POST", _
                        "***/***.asp", _
                        "HTTP/1.0", _
                        vbNullString, _
                        0, _
                        INTERNET_FLAG_RELOAD, _
                        0)
    ' HTTPリクエストのハンドルを開けないときは
    If lngHttpOpenRequestHandle = False Then
        ' エラーメッセージを設定
    End If

   ' HTTPサーバーにリクエストを送信
    lngWin32ApiResultCode = _
        HttpSendRequest(lngHttpOpenRequestHandle, _
                        vbNullString, _
                        0, _
                        ByVal "データ?", _
                        0)
    ' HTTPサーバーにリクエストを送信できないときは
    If lngWin32ApiResultCode = False Then
         ' エラーメッセージを設定  
    End If

とあるサイトからコピらせて頂いたソース(一部)です。
エラーはでませんが、DBの更新がされたかも未確認(まだテスト用しかない)
です。とりあえずこの方法で処理が可能か確認をしたいです。
よく分かっていなくて申し訳ありませんが、よろしくお願いします。

編集    削除
なー  2004-04-23 04:41:03  No: 83101  IP: [192.*.*.*]

ソースが足らないようなので追加します。
とりあえずASPが動けば更新するように修正したのですが、
制御も行ってないようでDBは更新されませんでした。

    ' Internet関数を使う前に初期化
    lngInternetSessionHandle = _
        InternetOpen("Agent", _
                     INTERNET_OPEN_TYPE_PRECONFIG, _
                     vbNullString, _
                     vbNullString, _
                     0)
    ' 初期化できないたときは
    If lngInternetSessionHandle = False Then
        ' エラーメッセージを設定
    End If

    ' サーバーホスト名を指定
    strInternetServerHostName = "111.111.11.11"
    ' HTTPセッションを開く
    lngInternetConnectHandle = _
        InternetConnect(lngInternetSessionHandle, _
                        strInternetServerHostName, _
                        INTERNET_DEFAULT_HTTP_PORT, _
                        "ユーザID", _
                        "Password", _
                        INTERNET_SERVICE_HTTP, _
                        0, _
                        0)
    ' HTTPセッションを開けないときは
    If lngInternetConnectHandle <= 0 Then
        ' エラーメッセージを設定
    End If

    ' HTTPリクエストのハンドルを開く
    lngHttpOpenRequestHandle = _
        HttpOpenRequest(lngInternetConnectHandle, _
                        "POST", _
                        "***/***.asp", _
                        "HTTP/1.0", _
                        vbNullString, _
                        0, _
                        INTERNET_FLAG_RELOAD, _
                        0)
    ' HTTPリクエストのハンドルを開けないときは
    If lngHttpOpenRequestHandle = False Then
        ' エラーメッセージを設定
    End If

    ' HTTPサーバーにリクエストを送信
    lngWin32ApiResultCode = _
        HttpSendRequest(lngHttpOpenRequestHandle, _
                        vbNullString, _
                        0, _
                        ByVal "TMP01", _
                        0)
    ' HTTPサーバーにリクエストを送信できないときは
    If lngWin32ApiResultCode = False Then
         ' エラーメッセージを設定
   End If
   
   終了処理

です。よろしくお願いします。

編集    削除
なー  2004-04-27 09:03:58  No: 83102  IP: [192.*.*.*]

自己レスです。
inetコントロールで解決しました。

編集    削除