Post请求可以从邮递员处工作,但不能从cURL处工作

Post请求可以从邮递员处工作,但不能从cURL处工作,curl,postman,Curl,Postman,我正在尝试将多部分文件上载到服务器。然而,post请求在使用Postman尝试时工作正常,但在使用cURL调用时返回java异常 下面的服务返回java异常 代码部分: curl -X POST \ http://localhost:49901/capital/rest/v1/projects/UID4d99e5-1669f58e3f2-e6726ae9eef110442b36e368eca820c9/harnessdesigns/UID56a429-1669a3c70b3-e6726ae9

我正在尝试将多部分文件上载到服务器。然而,post请求在使用Postman尝试时工作正常,但在使用cURL调用时返回java异常

下面的服务返回java异常

代码部分:

curl -X POST \
  http://localhost:49901/capital/rest/v1/projects/UID4d99e5-1669f58e3f2-e6726ae9eef110442b36e368eca820c9/harnessdesigns/UID56a429-1669a3c70b3-e6726ae9eef110442b36e368eca820c9/attacheddata \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Cookie: JSESSIONID=node0rhpkec0q1a521nz49bq6c0dy93.node0' \
  -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
  -F attachment=@/C:/Users/cabpq1/Desktop/CapitalData/ImportSpliceBundleInfoFile.json \
  -F 'customdata={"attributes":{"name":"AttachedData4","type":"type1","key":"key"}}'
答复部分:

<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<title>Error 500 Server Error</title>
</head>
<body><h2>HTTP ERROR 500</h2>
<p>Problem accessing /capital/rest/v1/projects/UID4d99e5-1669f58e3f2-e6726ae9eef110442b36e368eca820c9/harnessdesigns/UID56a429-1669a3c70b3-e6726ae9eef110442b36e368eca820c9/attacheddata. Reason:
<pre>    Server Error</pre></p><h3>Caused by:</h3><pre>javax.servlet.ServletException: javax.ws.rs.ProcessingException: java.io.IOException: java.util.concurrent.TimeoutException: Idle timeout expired: 30000/30000 ms
        at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:489)
        at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427)
        at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388)`enter code here`
        at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341)

错误500服务器错误
HTTP错误500
访问/资本/休息/v1/项目/UID4d99e5-1669f58e3f2-e6726ae9eef110442b36e368eca820c9/治理设计/UID56a429-1669a3c70b3-e6726ae9eef110442b36e368eca820c9/附件。原因:
java.util.concurrent.TimeoutException: Idle timeout expired: 30000/30000 ms
服务器错误

由以下原因引起:javax.servlet.ServletException:javax.ws.rs.ProcessingException:java.io.IOException:java.util.concurrent.TimeoutException:Idle超时过期:30000/30000毫秒 位于org.glassfish.jersey.servlet.WebComponent.serviceinpl(WebComponent.java:489) 位于org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427) 在org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388)`这里输入代码` 位于org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341)
您的回答清楚地表明超时

在Postman中检查配置

请求超时毫秒(0表示无穷大):设置应用程序在表示服务器未响应之前应等待响应的时间。值为0表示无限大-邮递员将永远等待响应

使用curl也可以实现同样的效果,curl有两个选项:--connect timeout和--max time

从curl手册页

--连接超时 允许连接到的最长时间(秒) 要使用的服务器

-m,--max time 允许整个操作完成的最长时间(秒) 拿着


你的回答清楚地表明超时

在Postman中检查配置

请求超时毫秒(0表示无穷大):设置应用程序在表示服务器未响应之前应等待响应的时间。值为0表示无限大-邮递员将永远等待响应

使用curl也可以实现同样的效果,curl有两个选项:--connect timeout和--max time

从curl手册页

--连接超时 允许连接到的最长时间(秒) 要使用的服务器

-m,--max time 允许整个操作完成的最长时间(秒) 拿着

客户端 首先,您使用了curl的
-F
选项,该选项执行多部分表单post,但您设置了
内容类型:application/x-www-form-urlencoded
。这似乎极不可能是正确的

然后您再次设置了
内容类型:
,这次设置为“multipart/form data;”(这已经是
-F
的默认值)

你确定你需要像那样摆弄边界字符串吗?这是不寻常的

您正在传递硬编码的cookie内容,这很少是服务器端所期望的

-X POST
如果您想要POST并使用-d或-F,则不应使用)

服务器端 这是一个500响应代码,这是一个服务器错误,客户端真的不应该能够触发

调试这个 将
--trace ascii logfile.txt
添加到curl命令行,您将能够准确地看到curl发送(和接收)的内容,然后您可以将其与工作版本进行比较并相应地进行调整。

客户端 首先,您使用了curl的
-F
选项,该选项执行多部分表单post,但您设置了
内容类型:application/x-www-form-urlencoded
。这似乎极不可能是正确的

然后您再次设置了
内容类型:
,这次设置为“multipart/form data;”(这已经是
-F
的默认值)

你确定你需要像那样摆弄边界字符串吗?这是不寻常的

您正在传递硬编码的cookie内容,这很少是服务器端所期望的

-X POST
如果您想要POST并使用-d或-F,则不应使用)

服务器端 这是一个500响应代码,这是一个服务器错误,客户端真的不应该能够触发

调试这个 将
--trace ascii logfile.txt
添加到curl命令行,您将能够准确地看到curl发送(和接收)的内容,然后您可以将其与工作版本进行比较并进行相应调整