ユーザーがHTMLを入力し、Webサービスを介してそれが有効なHTMLであるかどうかを確認するWebサービスを構築しようとしています。
私の例(基本のみ)は次のとおりです。
Set objXML = CreateObject("Msxml2.ServerXMLHTTP.6.0")
Dim strEnvelope
strEnvelope = "input=" & Server.HTMLEncode("<b>")
Call objXML.Open("POST", "http://[DOMAIN]/WebServices/HTMLWebService.asmx/ValidateHTML", false)
Call objXML.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
Call objXML.Send(strEnvelope)
Response.Write(strEnvelope & "##" & objXML.responseText & "##")
私のASPXページは入力を検証し、それがtrueまたはfalseの場合に戻ります(文字列配列XMLで)。現時点では、常にfalseを返しています。調査の結果、何らかの理由でASMXが受け取った入力が空であり、HTMLタグ付けに関係しているようです。HTMLでエンコードされていないか、asmxスクリプトで受け入れられていません。次を返します:
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
<string />
<string>false</string>
</ArrayOfString>
<string />は、返されたxml文字列配列に入力を直接戻す場所です。この値に「<b>」をハードコーディングすると、xmlはこれを「<b>」として返します。これは私が期待するものです。
「b」の入力を入力しただけの場合、falseが返されますが、文字列配列の最初の項目に「b」の値が表示されます。したがって、その値を確実に取得しています。
誰かが以前にhtmlをASP.NET(c#)Webサービスに解析したことがありますか、または何か提案がありますか?