5

サーバーからサーバーへ HTTP 経由でデータを別のサーバーに送信するには、従来のASP で XMLHttp オブジェクトを使用する必要があります。

sURL = SOME_URL

Set oXHttp = Server.CreateObject("Msxml2.XMLHTTP")

oXHttp.open "POST", sURL, false 
oXHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded;charset:ISO-8859-1;"

sPost = SOME_FORM_DATA

oXHttp.send(sPost)

Windows Server 2000 (IIS 5) または Windows Server 2003 (IIS 6) からこのコードを使用するかどうかに応じて、Latin-1 (Windows 2000 Server)を取得することを (消費サーバーの保守担当者から) 言われました。またはUTF-8 (Windows Server 2003) でエンコードされたデータ。

送信するデータの文字セットを設定するプロパティまたはメソッドが見つかりませんでした。一部の Windows 構成またはスクリプト (asp) 設定に依存しますか?

4

2 に答える 2

6

オプション「SXH_OPTION_URL_CODEPAGE」を設定することで、使用するコードページを設定できます

http://msdn.microsoft.com/en-us/library/ms763811(VS.85).aspx

また、シングル スレッド クライアント側アプリ用の「MSXML2.XMLHttp」オブジェクトではなく、「MSXML2.ServerXMLHTTP」オブジェクトを使用する必要があります。

于 2008-10-10T12:16:36.920 に答える
6

SXH_OPTION_URL_CODEPAGE に関する上記の回答は、誤解を招くようなものです。そのオプションは、質問があったと思うリクエスト本文のエンコーディングとは関係ありません。

質問のコード例の問題は、ヘッダーで「=」ではなく「:」を使用していることです。次のように設定する必要があります。

oXHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1"

于 2009-06-13T15:37:24.233 に答える