使用 cURL 发布数据

使用 cURL 发布数据

我尝试使用 URL 中的一些参数发布到 localhost。Fiddler 中一切正常。但 cURL 不允许我这样做,并显示以下错误消息。

curl --data“任务=烘焙”http://本地主机:49301/api/donut/run

{“Message”:“未找到与请求 URI 匹配的 HTTP 资源'http://本地主机:49301/api/donut/run'。","MessageDetail":"在控制器‘Donut’上未找到与请求匹配的操作。"}

在 Fiddler 中我编写请求如下:POSThttp://localhost:49301/api/donut/run?Task=bake

答案1

虽然从技术上讲您可能正在 Fiddler 中执行“POST”请求(我没有使用过,但我确实对 HTTP 有所了解),但在我看来,您实际上并没有发布查询,而是使用了“PUT”(可能与空帖子相结合)。

我相信如果你使用 curlhttp://localhost:49301/api/donut/run?Task=bake 它会正常工作。

[ PUT 请求将参数作为 URL 的一部分,而 POST 请求则将参数放在请求标头中。

您的应用程序很可能被编程为接受 PUTS 但不接受 POSTS。

答案2

以下工作:

curl --data''http://localhost:49301/api/donut/run?Task=bake

参数“--data''”似乎很重要,因此 curl 执行的是 POST 而不是 GET。

答案3

使用带有 --data 参数的 curl 会导致 curl 进行 POST,但也会将参数作为请求主体的一部分发送,而不是作为通过 URL 传递的参数发送。

鉴于您收到的错误是 MVC 路由错误,指出路由无法解析为操作,我猜测您所针对的操作未设置为从请求主体接收其参数。

尝试:

curl -d '' http://localhost:49301/api/donut/run?Task=bake

相关内容