我正在尝试使用PowerShell并遇到以下问题:
当我想使用Invoke-WebRequest
登录Twitter时- (IBAction)randomButtonEvent
{
// if you want random then...
NSInteger methodNumber = arc4random_uniform(7);
// if you want to increment each time then have a property methodNumber
self.methodNumber += 1;
if (self.methodNumber == 7) {
self.methodNumber = 0;
}
switch methodNumber { // or self.methodNumber
case 0:
// do your first action
break;
case 1:
// do your second action
break;
case 2:
// do your third action
break;
// you get the picture
}
}
并尝试为请求对象赋值,由于其字段的twitter命名约定,这是不可能的。这是我得到的错误信息
表达式或语句中的意外标记'username_or_email]'。
是否有一些简单的方法来逃避这些角色?
答案 0 :(得分:2)
该字段的名称为session[username_or_email]
,在PowerShell中,您有两种方式可以参考:
# dot notation, but it must be quoted because of special characters
$r[1].Fields."session[username_or_email]"
# array notation, must be quoted either way
$r[1].Fields["session[username_or_email]"]
通常你可能刚刚完成$r[1].Fields.TheFieldName
,但由于涉及特殊字符,你必须把它放在引号中。
此外,我将指出$r
中的响应应该已经将所有字段解析为对象,让您选项卡完成它们,但是这个对象做了一件奇怪的事情:如果<input>
字段具有id
属性,它将根据该属性而不是名称来命名对象,这就是为什么您要找到名为signin-email
的字段而不是已命名为session[username_or_email]
的字段的原因
如果它在您提交时导致问题,您可能需要手动删除基于ID的字段。