問題: 私は .NET HTTP ハンドラーが XML の HTTP POST を受け取っていると思いますが、これは Java システムから発信されたものだと思います。1 つの要素には、base64 文字列でエンコードされたドキュメントが含まれています (現在のテスト ファイルは PDF です)。元の PDF を取得して .NET から base64 文字列を生成すると、それと提供された XML の対応するテキストとの間にいくつかの不一致があります。
次の 3 つのいずれかが発生する場所が多数あります。
- XML ファイルは、.NET がプラスを配置する場所に 1 つのスペースを配置します。
同様に、XML ファイルには、.NET の plusses に対して挿入された連続したスペースのペアがあります。
PgplbmRv YmoKNSAw
対。PgplbmRv++YmoKNSAw
XML ファイルには、.NET の plussesとは対照的に、挿入された連続したスペースのペアがあり、追加のスペースが XML のバージョンの近くに追加されていることがあります。
3kuPs 85QZWYaw BsMNals
対。3kuPs 85QZWYaw++BsMNals
ソース XML には 4 つのスペース (下の表示は 2 つのスペースのように見えます) がありますが、.NET には連続するプラスのペアがあります。
vGDmKEJ gnJeOK
対。vGDmKEJ++gnJeOK
また、ソース (Java で作成された?) データにはプラスがありません。
質問: これらの不一致の原因を特定できる人はいますか? 検索して置き換える信頼できるパターンが見当たらないので、どのように対処すればよいでしょうか?
編集: POST が到着すると、オブジェクトに逆シリアル化する前に URL デコードを行います。
public void ProcessRequest(HttpContext context)
{
try
{
StreamReader reader = new StreamReader(context.Request.InputStream);
context.Response.ContentType = "text/plain";
var decodedRequest = HttpUtility.UrlDecode(reader.ReadToEnd());
...