我正在使用AngleSharp「打開」URL,更改input
的value
屬性,然後提交form
。Anglesharp context.openAsync()返回無法識別的字符。我能做什麼?
但是當我從URL獲取HTML代碼時,我在input
的name
屬性中得到了一個無法識別的字符,這讓我感興趣。請參閱:
<!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")
那麼,問題是,當我提交表單,它有錯誤的名稱發送POST數據,他們不能得到認可。我通過在瀏覽器中打開這個URL來了解無法識別的字符,並使用Wireshark(獲取字符的十六進制值)仔細檢查它。
最後,焦炭在瀏覽器中源的觀點是希臘A
和Wireshark的說,這是C1
符號是Á
與描述:Latin capital letter A with acute
(見http://www.ascii-code.com/)
我知道是誰創造了這個網站的人界面,他告訴我他用錯了希臘A
,他不能改變它(我會解釋爲什麼)。
所以,現在我知道服務器的期望,我想我也可以設置name
屬性,然後發送表單。但是當我這樣做的時候,既不會被識別,也不會因爲我在Wireshark中檢查而導致char與瀏覽器在提交表單時發送的char不同。 (我努力設定正確的名字,沒有運氣)。
我也認爲這可能是某種編碼問題,但我沒有設法在context
配置中設置編碼。我在獲得HTML之前將文化設置爲「el-GR」,但沒有任何變化。
我該怎麼辦?你有什麼建議嗎?
PS。這是一個由微控制器託管的低安全性網頁界面。由於該設備已獲得認證,因此無法更改HTML。另外,該界面在瀏覽器中使用時效果很好。