0

我写了一个简单的 Grizzly/Jersey 应用程序,你可以在这里找到:

https://github.com/boldt/stackoverflow-14526627

我想发布一些表单数据:

curl -X POST -F "name=test" -i http://localhost:9999/files

我收到以下回复:

HTTP/1.1 100 Continue

HTTP/1.1 200 OK
Date: Fri, 25 Jan 2013 16:51:18 GMT
Transfer-Encoding: chunked

如您所见,标题是双倍的,首先是 a ,100 Continue然后是 a 200 OK。获取 . 是没有意义的100 Continue

有什么建议么?

4

2 回答 2

2

这很正常。Curl 遵循 HTTP 1.1 规范。您正在执行 POST,这意味着您将向服务器发送数据。Curl 正在向服务器发送一个请求标头,其中包含“Expect:100-continue”。

这告诉服务器客户端想要发送 POST 文档的权限,如果服务器以 HTTP/1.1 100 Continue 响应,则客户端发送文档(在这种情况下是您的表单对),否则服务器可能会以任何原因拒绝它使用 HTTP /1.1 417 预期失败,这允许客户端在可能被拒绝时不会浪费时间发送大量数据。

于 2013-01-25T17:45:58.353 回答
1

这两个标题没有任何问题。阅读 Expect 标头。 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
检查您的请求标头。您可能正在使用 curl 发送 HTTP Expect。

curl -vv -X POST -F "name=test" -i http://localhost:9999/files
于 2013-01-25T17:13:00.973 回答