- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
如果一直使用以下命令行来查询简单的 Web 表单,以识别进行后续表单 POST 所需的所有输入字段。然而,我只是遇到了一个相对简单的网络表单,它有两个输入字段,下面的命令无法识别它们:
Invoke-WebRequest 'http://URI.com/index.aspx' -WebSession $Save |
select -ExpandProperty inputfields | select name, value
..
在下面的 HTML 源代码示例中,上述命令将识别具有“输入名称”的所有内容(在下面的 html 中显示);但是,不是其他输入类型;例如,“选择”、“文本区域”。我想知道可以识别下面 HTML 源代码示例中所示的 ALL 输入字段类型的“the”命令行;以及通过 Powershell Invoke-WebRequest POST 表单所需的任何其他不可预见的输入类型。
HTML 来源:
..align="right" style="white-space:nowrap;"><input name="MainPage$LastName"..
..align="right" style="white-space:nowrap;"><input name="MainPage$email"..
..align="right" style="white-space:nowrap;"><input name="MainPage$phone"..
..align="right" style="white-space:nowrap;"><select name="MainPage$CountryDropDownList"..
..align="right" style="white-space:nowrap;"><input name="MainPage$Description"..
..align="right" style="white-space:nowrap;"><textarea name="MainPage$DescribeHere"..
..
PS:我应该在 POST 时使用上面 Invoke-WebRequest 命令行中返回的名称,还是下面命令行中返回的名称?因为,它们是不同的。
$r.Forms[0] | $form.fields
编辑:上述 Invoke-WebRequest 的结果是(如下)。如您所见,*MainPage_CountryDropDownList* 和 *MainPage_DescribeHere* 在下方缺失:
Key Value
--- -----
__VIEWSTATE /wEPDwULLTE5OT
__EVENTVALIDATION /wEWEALtsrvJAgLkmtI29k...
MainPage__FirstName Craig
MainPage__LastName Smith
MainPage__email CraigSMith@gmail.com
MainPage__phone
MainPage__Project
MainPage__Submit Submit
编辑:我以前从未处理过 VIEWSTATE 和 EVENTVALIDATION。有人可以确认我可以简单地发布与我第一次开始网络 session 时收到的相同的 VIEWSTATE 和 EVENTVALIDATION 值吗?当网络 session 开始时,它们很容易存储在变量中。因此,希望在我执行 POST 时这些值可以保持原样。
编辑:对于那些建议 Fiddler 的人。我已经使用该工具获取 POST 的字段名称。 我特别想通过命令行通过类似以下解决方案的方式获取此信息(不幸的是,正则表达式不正确,但对于了解正则表达式的人来说我们会知道我正在尝试做什么:
$r.RawContent| sls -Pattern "(\<(input|select|textarea) name\=[""'])(?:(?=(\\?))\2.)*?\1" -allmatches | %{$_.matches} | %{$_.value}
最佳答案
select
和 text
区域不是输入字段 according to the spec .
对于您正在做的事情,我建议您获取 Fiddler ,启动它并监视您在浏览器中手动执行的 POST。提交表单后,转到 Fiddler 并找到 session 并查看原始请求。如果它是一个帖子,它将有一个看起来像这样的正文:
usrname=keith&comment=some+pig.
将该信息作为您传递给 Invoke-WebRequest -Body 参数的正文,例如:
$wr = Invoke-WebRequest http://URI.com/index.aspx -WebSession $Save -Method Post `
-Body @{'MainPage$CountryDropDownList'="United States";'MainPage$DescribeHere'="some text"}
只需将字段附加到此哈希表即可。如果字段名称包含 $
,则必须在名称周围加上单引号,否则不需要引号,例如-正文@{username="john";age="42"}
。
这是我们提供的用于发送到 NetGear 交换机以启用/禁用端口的 body
字符串:
$portStateBody = "unit_no=1&java_port=&inputBox_interface1=&portDesc=&adminMode=${PortState}&physicalMode=Auto&auto_power_down=Disable&short_cable=Disable&linkTrap=Enable&frameSize=1518&CBox_1=checkbox&inputBox_interface2=&submt=16&cncel=&err_flag=0&err_msg=&selectedPorts=g${PortNumber}%3B&multiple_ports=1"
注意 PowerShell 变量 ${PortState}
和 ${PortNumber}
。该文本实际上是从 Fiddler 的原始请求选项卡中复制/粘贴出来的,然后我在需要的地方替换了前面提到的 PowerShell。
如果你真的想对这些元素的原始 HTML 进行正则表达式,试试这个:
sls -inp $wr.RawContent -pattern '(?is)<(input|select|textarea)\s+.*?(?:id|name)\s*=\s*"([^"]+)"' -AllMatches | Foreach {$_.Matches} | Foreach {"Element: $($_.Groups[1].value) key: $($_.Groups[2].value)"}
关于jquery - Powershell 调用-WebRequest ...|选择 -ExpandProperty 输入字段(并非所有 "inputfields"都显示),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19964045/
是否有某种方法可以使用 JPA 或 Hibernate Crtiteria API 来表示这种 SQL?或者我应该将其作为 native 执行吗? SELECT A.X FROM (SELECT X,
在查询中, select id,name,feature,marks from (....) 我想删除其 id 在另一个 select 语句中存在的那些。 从 (...) 中选择 id 我是 sql
我想响应用户在 select 元素中选择一个项目。然而这个 jQuery: $('#platypusDropDown').select(function () { alert('You sel
这个问题在这里已经有了答案: SQL select only rows with max value on a column [duplicate] (27 个回答) 关闭8年前。 我正在学习 SQL
This question already has answers here: “Notice: Undefined variable”, “Notice: Undefined index”, and
我在 php 脚本中调用 SQL。有时“DE”中没有值,如果是这种情况我想从“EN”中获取值 应该是这样的,但不是这样的 IF (EXISTS (SELECT epf_application_deta
这可能是一个奇怪的问题,但不知道如何研究它。执行以下查询时: SELECT Foo.col1, Foo.col2, Foo.col3 FROM Foo INNER JOIN Bar ON
如何在使用 Camera.DestinationType.FILE_URI. 时在 phonegap camera API 中同时选择或拾取多个图像我能够一次只选择一张图像。我可以使用 this 在
这是一个纯粹的学术问题。这两个陈述实际上是否相同? IF EXISTS (SELECT TOP 1 1 FROM Table1) SELECT 1 ELSE SELECT 0 相对 IF EXIS
我使用 JSoup 来解析 HTML 响应。我有多个 Div 标签。我必须根据 ID 选择 Div 标签。 我的伪代码是这样的 Document divTag = Jsoup.connect(link
我正在处理一个具有多个选择框的表单。当用户从 selectbox1 中选择一个选项时,我需要 selectbox2 active 的另一个值。同样,当他选择 selectbox2 的另一个值时,我需要
Acme Inc. Christa Woods Charlotte Freeman Jeffrey Walton Ella Hubbard Se
我有一个login.html其中form定义如下: First Initial Plus Last Name : 我的do_authorize如下: "; pri
$.get( 'http://www.ufilme.ro/api/load/maron_online/470', function(data
我有一个下拉列表“磅”、“克”、“千克”和“盎司”。我想要这样一种情况,当我选择 gram 来执行一个函数时,当我在输入字段中输入一个值时,当我选择 pounds 时,我想要另一个函数来执行时我在输入
我有一个 GLSL 着色器,它从输入纹理的 channel 之一(例如 R)读取,然后写入输出纹理中的同一 channel 。该 channel 必须由用户选择。 我现在能想到的就是使用一个 int
我想根据下拉列表中的选定值生成输入文本框。 Options 2 3 4 5 就在这个选择框之后,一些输入字段应该按照选定的数字出现。 最佳答案 我建议您使用响应式(Reac
我是 SQL 新手,我想问一下如何根据首选项和分组选择条目。 +----------+----------+------+ | ENTRY_ID | ROUTE_ID | TYPE | +------
我有以下表结构: CREATE TABLE [dbo].[UTS_USERCLIENT_MAPPING_USER_LIST] ( [MAPPING_ID] [int] IDENTITY(1,1
我在移除不必要的床单时遇到了问题。我查看了不同的论坛并将不同的解决方案混合在一起。 此宏删除工作表(第一张工作表除外)。 Sub wrong() Dim sht As Object Applicati
我是一名优秀的程序员,十分优秀!