所在位置 行:1 字符: 70 + ... "accept" = "*/*"; "Content-Type" = "application/json" }$body = @{ "T ... + ~~~~~ 表达式或语句中包含意外的标记“$body”。 + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : UnexpectedToken
时间: 2024-02-13 15:05:52 浏览: 34
这个错误通常是由于在 PowerShell 命令中未正确引用变量 `$body` 导致的。在你的命令中,你可能没有正确引用变量 `$body`,导致在命令执行时 PowerShell 无法识别它。你可以尝试使用以下命令来修复这个问题:
```
$headers = @{ "accept" = "*/*"; "Content-Type" = "application/json" }
$body = @{ "Title" = "QQQ" } | ConvertTo-Json
Invoke-WebRequest -Uri http://localhost:8080/todolist -Method POST -Headers $headers -Body $body
```
这个命令将会创建一个字典类型的 `$headers` 变量,然后将其传递给 `Invoke-WebRequest` 命令。同时,我们还将请求体作为 JSON 格式的字符串放在 `$body` 变量中,并使用 `ConvertTo-Json` 命令将其转换为 JSON 格式。最后,我们将 `$headers` 和 `$body` 变量一起传递给 `Invoke-WebRequest` 命令。请注意,在使用 `$body` 变量时,不要在变量前面添加 `$` 符号。
相关问题
curl -X POST -H "accept:*/*" -H "Content-Type: application/json" -d "{\"Title\":\"QQQ\"}" http://localhost:8080/todolist Invoke-WebRequest : 无法绑定参数“Headers”。无法将“System.String”类型的“accept:*/*”值转换为“System.Collections.IDictionary”类型。怎么办
这个问题的原因是 PowerShell 无法将字符串 "accept:*/*" 解析为正确的字典类型的 header。你需要将 header 作为字典类型传递给命令,可以使用以下命令解决这个问题:
```
$headers = @{ "accept" = "*/*"; "Content-Type" = "application/json" }
$body = @{ "Title" = "QQQ" } | ConvertTo-Json
Invoke-WebRequest -Uri http://localhost:8080/todolist -Method POST -Headers $headers -Body $body
```
这个命令将会创建一个字典类型的 `$headers` 变量,然后将其传递给 `Invoke-WebRequest` 命令。同时,我们还将请求体作为 JSON 格式的字符串放在 `$body` 变量中,并使用 `ConvertTo-Json` 命令将其转换为 JSON 格式。最后,我们将 `$headers` 和 `$body` 变量一起传递给 `Invoke-WebRequest` 命令。
fetch_data(json_data: any) { let self = this let ctrl = new AbortController() // console.log('ctrl', ctrl) fetchEventSource('http://10.110.133.8/apiv2/videomgr/query', { method: 'POST', signal: ctrl.signal, headers: { 'Content-Type': 'application/json', accept: 'text/event-stream' }, body: JSON.stringify(json_data), async onmessage(event: EventSourceMessage) { console.log('event', event) if (event.data === '') return self.list.push({ name: 'xs', msg: event.data }) }, async onopen(response: any) { // 开始 console.log('rerere', response) } }) }
这段代码是一个使用fetch函数发送POST请求并获取数据的函数。它使用Fetch API来发送异步请求,并通过EventSource对象来监听服务器推送的事件。
首先,它创建了一个AbortController对象`ctrl`,用于中止请求。
然后,它使用fetch函数发送POST请求到指定的URL `'http://10.110.133.8/apiv2/videomgr/query'`。请求的方法为POST,请求头包含了Content-Type为application/json和accept为text/event-stream。
请求的主体是通过JSON.stringify方法将json_data对象转换为JSON字符串。
同时,它设置了两个事件处理程序:
1. onmessage事件处理程序用于监听服务器推送的消息。当接收到消息时,将消息作为新的对象添加到self.list数组中。
2. onopen事件处理程序用于在连接打开时进行一些操作。在这里,它会打印出response对象。
整体来说,这段代码使用Fetch API发送POST请求,并监听服务器推送的消息和连接打开事件。在收到消息时,将其添加到列表中。