我正在尝试导航到REST API,但网页所有者已在REST API URL前面插入了一个HTML消息页面。因此,当我向REST API发出请求时,不会返回我请求的XML文件,而是返回一个HTML页面,其中包含一些信息性消息,并且需要单击按钮才能确认该消息。
当用Fiddler检查时,按钮本身没有显示onclick事件:
<div class="dialog-buttons">
<button id="frmMessages:btnAcknowledge" name="frmMessages:btnAcknowledge" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" onclick="" title="Acknowledge and continue" type="submit">
<span class="ui-button-text ui-c">OK</span>
</button>
</div>
我无法直接导航到按钮单击发送给您的页面,因为它不会将您发送到任何地方,它只是确认您单击了该按钮,并关闭了该消息。
我正在尝试模拟此按钮单击。我已经尝试使用System.Windows.Forms.WebBrowser类,但我无法将我的resultContent加载到浏览器中,DocumentText属性保持为空,所以当我尝试调用按钮单击时,我得到一个空引用异常
handler = new HttpClientHandler();
handler.CookieContainer = cookies;
handler.AllowAutoRedirect = false;
using (var client = new HttpClient(handler)){
string resultContent = result.Content.ReadAsStringAsync().Result;
System.Windows.Forms.WebBrowser b = new System.Windows.Forms.WebBrowser();
b.Navigate("about:blank");
HtmlDocument doc = b.Document;
doc.Write(string.Empty);
b.DocumentText = resultContent;
var resp = b.Document.GetElementById("frmMessages:btnAcknowledge").InvokeMember("onclick");
}
在我看来,网页的所有者通过在REST API调用之前插入HTML消息页面搞砸了一些东西,我已经联系了他们,但是现在和他们可以修复它之间(如果它甚至是他们的问题)我需要一种绕过这个消息框的方法。
答案 0 :(得分:0)
网站的所有者将问题解决了。我从来没有找到办法做到这一点,但问题已经解决了。