将WPF表单数据作为变量传递给Invoke-Webrequest命令的问题

时间:2018-04-02 20:45:44

标签: wpf powershell xaml

我一直在使用foxdeploy的一些很好的例子来尝试为一系列针对不同场景的invoke-webrequest创建一个gui。输入总是需要由用户生成并针对云提供者启动以创建对象

https://foxdeploy.com/2015/04/16/part-ii-deploying-powershell-guis-in-minutes-using-visual-studio/

问题是无论我做什么,我似乎无法通过imput和按钮点击进入invoke-webrequest。命令似乎总是失败。我正在尝试以下内容:

$WPFCreate_User.Add_Click({

    $Form.Add_Loaded({$WPFName_Entry.Text = $NewUser})    

    Invoke-WebRequest -Headers @{"X-RRR-Key"="XXXXXXXXXXXXXXXXX"} -Method Put -body '{"USER":'"$NewUser"'}' https://api.blue.net/v1/Users/$NewUser
})

我已经在这里待了2天,并尝试了很多方法来抓住输入并插入Put Body领域并且无法弄明白。单独运行invoke-webrequest很好,没有任何问题。从脚本运行也是有效的。

1 个答案:

答案 0 :(得分:0)

我看到的直接问题,如果您的字符串存在一些与身体有关的基本问题:

'{"USER":'"$NewUser"'}'

首先,你的字符串中有未转义的单引号,并且你试图在单引号内执行字符串扩展(这不起作用);或者您正在尝试在没有连接器的情况下执行字符串连接。您可以尝试的是:

$WPFCreate_User.Add_Click({

    $Form.Add_Loaded({$WPFName_Entry.Text = $NewUser})    
    $body = '{"User":"{1}"}' -f $NewUser
    Invoke-WebRequest -Headers @{"X-RRR-Key"="XXXXXXXXXXXXXXXXX"} -Method Put -body $body https://api.blue.net/v1/Users/$NewUser
})

看看这对你有效。