POST是HTTP协议方法之一;当客户端需要将数据发送到服务器时(例如上载文件或提交完成的表单)时使用它。
httpClient PostAsync 返回 405 方法不允许
我通过 Payfast 的自定义集成合并了他们。我正在最后一步通过向以下网址发出请求来验证 Payfast 的请求:https://sandbox.payfast.co.za/eng/query/validate。 ...
不带参数调用curl,我得到页面输出,即使http状态代码= 404: $ 卷曲 http://www.google.com/linux 不带参数调用curl,我会得到页面输出,即使http状态代码= 404: $ curl http://www.google.com/linux <!DOCTYPE html> <html lang=en> <meta charset=utf-8> <meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width"> <title>Error 404 (Not Found)!!1</title> <style> *{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//www.google.com/images/errors/logo_sm_2.png) no-repeat}@media only screen and (min-resolution:192dpi){#logo{background:url(//www.google.com/images/errors/logo_sm_2_hr.png) no-repeat 0% 0%/100% 100%;-moz-border-image:url(//www.google.com/images/errors/logo_sm_2_hr.png) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//www.google.com/images/errors/logo_sm_2_hr.png) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:55px;width:150px} </style> <a href=//www.google.com/><span id=logo aria-label=Google></span></a> <p><b>404.</b> <ins>That’s an error.</ins> <p>The requested URL <code>/linux</code> was not found on this server. <ins>That’s all we know.</ins> $ echo $? 0 状态码为0。 使用 --fail 调用它不会显示输出: $ curl --fail http://www.google.com/linux curl: (22) The requested URL returned error: 404 Not Found $ echo $? 22 现在状态码是22... 即使 http status = 404, 500(如第一次curl 执行),我也想获得输出,同时获得不同的系统错误(如第二次curl 执行中,$? = 22)。 可以用curl吗?如果没有,我怎样才能用另一个工具实现这一点(这个工具必须接受文件上传和发布数据!wget似乎不是替代方案......) 现在可以通过curl 实现这一点。从 7.76.0 版本开始你可以做 curl --fail-with-body ... 这正是OP所要求的:显示文档正文并以代码22退出。 参见 https://curl.se/docs/manpage.html#--fail-with-body 首先,错误代码(或退出代码)的最大值是 255。这是参考。 此外,--fail将不允许您做您正在寻找的事情。但是,您可以使用其他方法(编写 shell 脚本)来处理该情况,但不确定它是否对您有效! http_code=$(curl -s -o out.html -w '%{http_code}' http://www.google.com/linux;) if [[ $http_code -eq 200 ]]; then exit 0 fi ## decide which status you want to return for 404 or 500 exit 204 现在执行 $?,您将从那里获得退出代码。 您将在 out.html 文件中找到响应 html。 您还可以将 url 作为命令行参数传递给脚本。 检查这里。 不幸的是,卷曲是不可能的。但你可以使用 wget 来做到这一点。 $ wget --content-on-error -qO- http://httpbin.org/status/418 -=[ teapot ]=- _...._ .' _ _ `. | ."` ^ `". _, \_;`"---"`|// | ;/ \_ _/ `"""` $ echo $? 8 感谢@timaschew,这是我基于纯awk的增强版本: curl_fail_with_body() { curl -o - -w "\n%{http_code}\n" "$@" | awk '{l[NR] = $0} END {for (i=1; i<=NR-1; i++) print l[i]}; END{ if ($0<200||$0>299) exit $0 }' } # example usage curl_fail_with_body -sS http://httpbin.org/status/418 说明 -o - -w "\n%{http_code}\n" - 打印到标准输出(实际上它通过管道传输到下一个命令),最后带有状态代码 {l[NR] = $0} END {for (i=1; i<=NR-1; i++) print l[i]} - 打印除最后一行之外的所有行 END{ if ($0<200||$0>299) exit $0 } - 如果 last line != 2xx,将以非零代码退出 替代版本,如果你想在命令后输出错误代码: END{ if ($0<200||$0>299) {print "The requested URL returned error: " $0; exit 1} 顺便说一句,curl 从 v7.76.0 开始支持 --fail-with-body 选项。 此选项允许您在不使用外部工具的情况下实现所需的行为。 我找到了解决方案,因为 wget 不适合发送 multipart/form-data curl -o - -w "\n%{http_code}\n" http://httpbin.org/status/418 | tee >(tail -n 1 | cmp <(echo 2xx) - ) | tee >(grep "char 2"; echo $? > status-code) && grep 0 status-code 说明 -o - -w "\n%{http_code}\n" - 打印到标准输出(实际上它通过管道传输到下一个命令),最后带有状态代码 tee - 输出将通过管道传输到下一个命令,并另外打印到 stdout tail -n 1 - 从最后一行提取状态代码 cmp <(echo 2xx) - 比较状态代码,仅第一个字符 grep "char 2" - 如果第一个字符需要为 2,否则失败 在 shell 脚本中,您还可以进行更好的比较(目前它只允许 2xx,因此像 300 这样的重定向将被作为错误处理,cmp上面如何使用它) 这是我的解决方案 - 它使用 jq 并假设正文是 json # this code adds a statusCode field to the json it receives and then jq squeezes them together # curl 7.76.0 will have curl --fail-with-body and thus eliminate all this local result result=$( curl -sL -w ' { "statusCode": %{http_code}} ' -X POST "${headers[@]}" "${endpoint}" \ -d "${body}" "$curl_opts" | jq -ren '[inputs] | add' ) # always output the result echo "${result}" # jq -e will produce an error code if the expression result is false or null - thus resulting in a # error return code from this function naturally. This is much preferred rather than assume/hardcode # the existence of a error object in the body payload echo "${result}" | jq -re '.statusCode >= 200 and .statusCode < 300' > /dev/null
Google apps脚本UrlFetchApp和nodejs axios返回不同的结果;我的健身伙伴日记
我正在尝试从 MyFitnessPal 获取我的日记,我本机编写了以下有效的代码: “严格使用”; const axios = require('axios') 异步函数 getReport(用户名) { 常量
Retrofit2 POST 请求,以正文作为参数 Kotlin
我是 Kotlin 新手,无法将现有的 POST 请求参数更改为 body。我查看了其他答案,但没有一个答案具有与我的请求部分类似的代码。我...
我有一个网站,应该从网络表单接收数据。我无法访问网络表单的代码。 我可以在网络表单上输入应发送数据的链接,它会向我发送...
我正在开发一个 Ballerina 项目,我有一个名为 fooTable 的记录表,其定义如下: 输入 Foo 记录 {| 只读 int id; 字符串名称; |}; 表键(id)
有没有办法从 Django 的请求中获取所有表单名称? html请求 def demoform(请求): if request.method=="POST&...
我有以下 django 模板(http://IP/admin/start/ 被分配给一个名为 view 的假设视图): {% 为来源中的来源 %} {{来源}} &l...
如何在 .NET Core Web API 中对具有外键的数据库表进行 POST/PATCH/PUT?
我正在尝试在 .NET Core Web API 中为包含外键的数据库表创建 POST、PATCH 和 PUT 方法。我不确定问题是出在我的方法上还是出在我测试的方式上
ktor - 在 kotlin 和 django 中使用不同的 JSON 键命名发出 post 请求
我想在 Ktor 和 django 中使用不同的 JSON 键命名来发出 post 请求。这不是什么大问题,但我想遵循 Kotlin 和 django 中命名 val 的约定。 这是嗬...
MVC4 忽略 [HttpGet] 和 [HttpPost] 属性
我正在尝试制作一个简单的测试网站,以允许我使用 MVC4 列出、创建、编辑和删除客户对象。 在我的控制器内,我有 2 个创建方法,一个用于在表单加载时获取...
向 Express.js 服务器发出 POST 请求时出现错误 404
我目前正在使用 Express.js 开发 Web 应用程序,并在尝试向服务器发出 POST 请求时遇到 404 错误。我有一个简单的 HTML 表单,带有一个提交按钮,可以...
使用 Guzzle 发送 post http 请求时出现错误 500 内部服务器错误
我正在尝试使用 Guzzle 发送 post http 请求,但出现错误 500 内部服务器错误 RequestException.php 第 113 行中的 ServerException: 服务器错误:`POST https://domainname/api/v1/user/
我需要从命令行通过 cURL 发出 POST 请求。此请求的数据位于文件中。我知道通过 PUT 这可以使用 --upload-file 选项来完成。 卷曲主机:端口/后f...
nginx乘客recv()在发送到客户端时失败(104:连接被对等方重置)
我正在将一些 json 发布到 nginx 上的 Sinatra post 路由。我收到 500 ISE 错误。我不知道为什么会发生这种情况。 JSON 很好,url 有效(在浏览器中拉出时显示 404...
类型“String”无法分配给参数类型“Map<String, dynamic>”?尝试了一些解决方案,但仍然卡住
这是我的代码: 地图?我的地图 = { 'conversationId': iD, '类型':'文本', '数据': _controller.text.toString(), 'msgLength':_controller.text.length, 'senderId': Provider.of( ...
我需要执行以下步骤,但我之前没有使用过post请求,并且一直出现错误,你能帮忙吗? • 请求的详细信息 • API 链接,他们可以在其中查看请求的验证器 •
我在放心地发出 POST 请求时遇到了问题。 这段代码的工作原理: 给定().contentType(ContentType.JSON).body("{\"key\":\"val\"}"). when().post(url + 资源).then().assert...
Axios API POST 请求即使在 Postman 中测试后也会返回 307 重定向错误
我最近不再使用 fetch() 方法进行 API 调用,而是实现了 Axios。我的 API 调用的 URL 之前都可以正常工作并且能够正确通信...
我需要使用 FormData 将一些数据添加到表单中,以便在提交表单时也会发布这条新数据,但我无法让它工作。请注意,我不想使用 ajax 或 fetch t...