AngleSharp を使用して URL を「開き」、 のvalue
属性を変更しinput
てからform
.
しかし、URL から HTML コードを取得すると、興味のある のname
属性に認識できない文字が表示されます。input
見る:
<!DOCTYPE html>
<html>
<head></head>
<body>
<hr>
<center>USER MENU<hr></center>
<form method="post" name="input" enctype="text/plain">
<fieldset>
<legend>ENTER USER CODE</legend>
ENTER USER CODE: <input type="password" name="�00" maxlength="4">
<br>
<button type="submit" formenctype="text/plain">SEND</button>
</fieldset>
</form>
</body>
</html>
ご覧のとおり、これはフォーム内の唯一のものであるため、セレクターとして他の属性によってinput
(を変更するために) 「キャッチ」できます。value
このような:[type=password]
context.Active.QuerySelector(Of IHtmlInputElement)("[type=password]").SetAttribute("value", "1111")
そのため、問題は、フォームを送信すると、投稿データが間違った名前で送信され、認識されないことです。この URL をブラウザーで開いて認識できない文字が何であるかを知り、Wireshark を使用して (文字の HEX 値を取得するために) 再確認しました。
最後に、char はブラウザのソース ビューではギリシャ語であり、Wireshark によると、説明付きA
のシンボルでしC1
た( http://www.ascii-code.com/を参照) 。Á
Latin capital letter A with acute
私はこの Web インターフェイスを作成した人を知っていますが、彼はギリシャ語A
を間違って使用していて、それを変更することはできないと私に言いました (理由は後で説明します)。
name
サーバーが何を期待しているのかがわかったので、属性も設定してフォームを送信できると思いました。しかし、Wiresharkでチェックインすると、文字がフォームを送信するときにブラウザが送信する文字と同じではないため、認識されません。(運が悪いので正しい名前を設定するのに苦労しました)。
また、何らかのエンコードの問題である可能性も考えましたが、構成でエンコードを設定できませんでしたcontext
。HTML を取得する前にカルチャを「el-GR」に設定しましたが、何も変わりませんでした。
私に何ができる?何か提案はありますか?
PS。これは、マイクロコントローラーによってホストされるセキュリティの低い Web インターフェイスです。デバイスは既に認証を取得しているため、HTML を変更できません。また、ブラウザで使用すると、インターフェイスは完全に機能します。