Java から従来の ASP に Web ストアの API にアクセスするためのサンプル コードを書き直しています。Java コードが機能し、リクエストを送信すると、正しい結果が返されます。ASP コードはまったく同じことを行いますが、承認に問題があるというエラーを返すだけです。hmac 署名文字列 (sha256、base64) を確認しましたが、Java コードと同じ結果になります。
そこで、HTTP リクエストが実際にどのように表示されるかを確認し、それらを比較することにしました。Fiddler は良い選択のように見えましたが、何らかの理由で両方の HTTP 要求が表示されません。
この件についてはすでに多くのことが書かれており、私はいくつかのことを試しましたが、今のところうまくいきません。それらはすべて、localhost:8888 である Fiddler プロキシを介して要求をルーティングすることを説明しています。
ASP コードでこのオブジェクトを使用します。
Set httpRequest = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
IIS 7 (Windows 7 上) の場合、プロキシは次のように DOS で設定できます。
netsh winhttp set proxy localhost:8888
そして、このようなコードでは (これは、v6 以外の "MSXML2.ServerXMLHTTP" のバージョンでは機能しない可能性があります):
httpRequest.setProxy 2, "http=localhost:8888", ""
Java コードは Apache HttpClient を使用し、マニュアルによると、プロキシは次のように設定できます。
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpHost proxy = new HttpHost("localhost", 8888);
httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
このコードを main() メソッドの先頭に追加しました。コードは Eclipse (Juno) 内で実行されます。
また、ブラウザでプロキシ アドレス (http://localhost:8888/) を開くと、「Fiddler Echo Service」ページが表示されます。Fiddler は「すべてのプロセス」を表示するように設定されています。
それでも、2 つの HTTP リクエストのいずれも表示されません。表示される唯一のものは、HTTP 要求を実行する ASP ページ (http://localhost:8082/test.asp) です。ブラウザを使用すると、Fiddler に他のものが表示されるので、動作していることがわかります。
誰かアイデアはありますか?