2008年4月22日火曜日

HTTP リクエストが IE の送出するものと異なっている

http://www.nsoftware.com/kb/showentry.aspx?entry=07210402

該当製品:


  • IP*Works!
  • IP*Works! SSL


現象:


HTTP リクエストを送信しようとしているのですが、失敗してしまいます。しかし、同じリクエストが IE ではうまく動作します。何が悪いかを知り、対応するにはどうすれば良いですか?

解決法:


あなたが HTTP コンポーネントで送出しているデータと、IE で送出しているデータを比較してみましょう。これを行うには、弊社製品に同梱されている "tcpecho" サーバデモを実行し、リスン状態にします。次にあなたの HTTP コンポーネントコードを変更し、http://localhost:777/ に POST します。次に IE で http://localhost:777/ にリクエストを送信し、両者の結果を比較します。

また、ウェブフォームに対する POST を模倣したいのであれば、まず IE でそのフォームを表示し、ウェブページをディスクに保存します。次にそのウェブページを編集し、当該フォームのアクション URL を http://localhost:777/ になるようにします。

そして、コントロールのプロパティ (例えば UserAgent 等) を使用して、それらが IE のヘッダに一致するようにすることができます。さらに、コントロールが提供しないプロパティ (例えば Accept 等) に関しては、そのようなヘッダを追加するために OtherHeaders プロパティをご利用いただけます。(追加される各ヘッダは CRLF で区切ります。) 例:
Http1.Otherheaders = "headerfield1: headervalue1" + crlf + "headerfield2: headervalue2"

0 件のコメント: