http - 在不发送第一个 POST 的情况下 curl 重定向

标签 http redirect curl

我正在使用“curl -L --post302 -request PUT --data-binary @file”将文件发布到重定向地址。目前重定向不是可选的,因为它将允许签名的 header 和新的目的地。 GET 版本运行良好。特定文件大小阈值下的 PUT 版本也适用。我需要一种方法让 PUT 允许自己被重定向,而不是在第一次请求时发送文件(到 redirectorURL),然后只在 POST 被重定向到新的 URL 时才发送文件。换句话说,我不想将同一个文件传输两次。这可能吗?根据 RFC(https://www.rfc-editor.org/rfc/rfc2616#section-8.2),服务器似乎可以发送 100“具有未声明的等待 100(继续)状态,仅适用于 HTTP/1.1 请求,客户端不要求发送其有效负载”所以我'我的请求可能会被服务器阻止。有没有办法通过一个 curl 调用来解决这个问题?如果不是,两个 curl 调用?

最佳答案

尝试使用 curl -L -T file $URL 作为 PUT 该文件的更“正确”方式。 (我经常重复:-X--request 应该尽可能避免,它们会导致痛苦。)

在这种情况下,curl 将单独使用“Expect: 100”,但您也可能了解到服务器普遍不关心支持它,所以它很可能最终还是不得不 PUT 两次。 .

关于http - 在不发送第一个 POST 的情况下 curl 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43626181/

相关文章:

objective-c - 手动创建用于文件上传的 HTTP POST 请求

node.js - nodejs - net 或 http 模块

c - 将串行数据重定向到以太网数据

php - 没有缓存头的 Laravel 重定向

java - 在 Linux 中使用 CURL 进行 HTTP POST

c++ - 从 C++ 代码与 servlet 交互

perl - 哪些 http header 可以在浏览器后退按钮上抑制 "This document is no longer available."?

.htaccess 301 http ://redirect to https://not being indexed by Google

c++ - 使用 curl_easy_cleanup(curl) 时收到未处理的 NULL 异常

linux - 如何使用 curl (bash) 将文件上传到 dbinbox.com?