【问题标题】:HTTPClient Post & Request Default Value In FormHTTPClient 在表单中发布和请求默认值
【发布时间】:2018-10-22 16:37:56
【问题描述】:

最后要发布的表单会自动生成一个数字(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>

【问题讨论】:

  • 我认为这里缺少一些上下文。您是否正在对页面进行逆向工程并试图模仿其行为来发布请求?该页面属于您的团队还是第三方?
  • 第三者。我正在尝试向页面上的表单发送发布请求。 Fiddler在我的请求中给了我需要发送的必填字段,但是服务器响应错误的原因是因为我无法发送必填字段,因为我不知道在填充过程中将随机生成什么ID出网站上的表格。这完全澄清了吗?

标签: c# post request httpclient


【解决方案1】:

这个神秘的标识符可能很难通过设计来欺骗,很可能是CSRF token 或其他一些与安全相关的功能。

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

如果您试图在 POST 时欺骗页面的行为,则首先需要在最初 RENDERED 时欺骗对页面的请求。然后,您可以从响应中读取标识符,填充请求,最后发布它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    • 2019-11-19
    • 2018-06-12
    • 1970-01-01
    相关资源
    最近更新 更多