【发布时间】:2014-05-21 17:40:42
【问题描述】:
我正在调用一个 Web 服务,它需要一些字符串数据作为多部分表单输入。
POST /add_or_update HTTP/1.1
User-Agent: Apache-HttpClient/4.3.3 (java 1.5)
Host: localhost:8011
Accept: */*
token:728-e087-ca01-08d34
Content-Length: 691
Expect: 100-continue
Content-Type: multipart/form-data; charset=ISO-8859-1
"--Kd2aTBM_weD045iHeEcrWPLhENlKkH_L6oBz"
“内容配置:表单数据;name="abc" "first""
"--Kd2aTBM_weD045iHeEcrWPLhENlKkH_L6oBz"
"Content-Disposition : form-data; name="type" "AD""
如果我使用的是 Apache HTTP 客户端,底层服务似乎会抛出错误。
Invalid boundary in multipart form ''
如果我通过 CURL 发出同样的请求,它似乎可以按预期工作。这是它的标题。
POST /add_or_update HTTP/1.1
User-Agent: curl/7.27.0
Host: localhost:8011
Accept: */*
token:728-001-ca01-08d34
Content-Length: 691
Expect: 100-continue
Content-Type: multipart/form-data; boundary=----------------------------626b33b5dc95
我注意到的唯一区别是 Apache HTTP 客户端 (4.2) 不使用标头中的边界标记,但它仍然指定有效负载中的边界,我猜这会导致请求失败。
有人遇到过类似情况吗?任何指针将不胜感激。提前致谢。
【问题讨论】:
-
Apache是http服务器,curl是http客户端
-
Apache 也有 http 客户端库。 hc.apache.org/httpclient-3.x
标签: apache web-services http multipartform-data