HTTPClient在表单中发布并请求默认值

时间:2018-10-22 16:37:56

标签: c# post request httpclient

要在末尾自动发布的表单会自动生成一个数字(ID),该数字会自动填充,并且我假定该值不会重复。在无法访问数据库的情况下,我不确定如何将其正确添加到我的帖子请求中,以便服务器将其接收。

当我加载网页前端时,我看到显示为灰色的ID字段,它具有一个值。话虽这么说,我试图这样做:

HtmlAgilityPack.HtmlDocument doc = GetHtmlDocument(strContent);
string strTrying = (doc.GetElementbyId("IdOfElement").InnerText);

从本质上讲,上面的内容是我创建一个HTML文档,其中包含从请求到表单所在页面的内容字符串。我这样做的原因是因为当我使用DOM检查前端时,可以看到该值。我想我可以这样拉,然后添加到我的帖子中。但是,当我打印内容以查看其内容时,会看到以下内容:

        <td class="listItems">
        <input type="text" name="the_name" id="the_id" tabindex="2">
    </td>

id内没有内部文本,但是检查前端,我可以看到它。如果有人对此有任何见识,那将是很棒的。我想我朝着正确的方向前进,但是不确定为什么我在请求中回退的内容中各项的值没有显示。

这也是检查DOM中的前端网页:

  <INPUT tabIndex=2 id=the_id class=disabled readOnly maxLength=7 size=7 
   value=the_Value name=the_name>

1 个答案:

答案 0 :(得分:0)

神秘的标识符可能很难被设计欺骗,并且很可能是CSRF token或其他一些与安全性相关的功能。

如果您很幸运,标识符可能出现在页面返回的其中一个cookie中,但是很有可能cookie被加密了,并且/或者服务器端保存了标识符的副本,如果设计得当,将无法猜测。

如果您要欺骗页面发布时的行为,则首先需要欺骗页面最初被渲染时的请求。然后,您可以从响应中读取标识符,填充请求,最后将其发布。