2013-03-26 34 views
0

我在從linux機器運行curl POST命令時遇到問題。curl命令從linux發佈數據 - HTTP/1.1 100繼續

錯誤消息是如下 - 捲曲:(18)傳遞以優異的讀出的數據剩餘

我可以成功發佈在其他方案中,如文件中分割數據和做mulitiple倍數據封閉。 我運行curl命令後獲得完全反應如下

curl -X POST --data @dataCurl -ik -u userid:password -H 'Accept: application/xml' https://IP_ADDRESS:PORT/rest/xxx/xx/ 
HTTP/1.1 100 Continue 
Content-Length: 0 
Date: Tue, 26 Mar 2013 14:54:32 GMT 
Server: WebSphere Application Server/6.1 

HTTP/1.1 400 Bad Request 
Date: Tue, 26 Mar 2013 14:54:32 GMT 
Server: WebSphere Application Server/6.1 
Content-Type: text/html;charset=ISO-8859-1 
$WSEP: 
Content-Language: en-US 
Set-Cookie: LtpaToken2=SaVGscL3xKqJoTFymznYPqJKBuPO5HBhrpSTg2c+cpknypCODPb2r3RzJy7bP7kxoIWWUVS3iAlxIr0WLv5bhW1r2a3nW0i26Iblnlm07Xf 
Set-Cookie: LtpaToken=azPyTXehorPwNejA+UFxlrs+7yQfxQoQws/tXc97yQ5IWjykBjIejbp/2cVAHP5CCI01PnrK+TgZq3+C3HM8jc6GovZ9ID+TwjnDZHSvCgOjEk7lZRX2Sqyk49gGE5BMAZaTRJOF5mK0UNCELWG57KunZbSmqOis3h1F5phKOm2duQDqvRf3C54HTLrH60ec1YwMwXVUU9mAECgLIJIZC/2+shzjkn+2zAF3kgN5sDDVvFyO1aCnJje0VcdRosbIqGQgB01sBm4RXqXRtI3RbiHL9ThtHWH62xQwvVh9UYEphK/XY1Zk3vclRX2IFmDqNG8nsR7zIyY=; Path=/ 
Set-Cookie: JSESSIONID=0000EJSJpUPd0JIBOZcOEZ_oyiC:-1; Path=/ 
Transfer-Encoding: chunked 
Connection: Close 
Expires: Thu, 01 Dec 1994 16:00:00 GMT 
Cache-Control: no-cache="set-cookie, set-cookie2" 
curl: (18) transfer closed with outstanding read data remaining 

如果我分割數據文件分成更小的塊,我可以張貼在該實例data.Response是如下

curl -X POST --data @SRPart1 -ik -u userid:password -H 'Accept: application/xml' https://IP_ADDRESS:PORT/rest/xxx/xx/ 


HTTP/1.1 200 OK 
Content-Type: application/xml 
Expires: -1 
Content-Language: en-US 
Set-Cookie: 
LtpaToken2=I+Gw+zcgPZDCpUWhKIfr53IiOulhfU5gH1rLIzQi9jdpSLASBkCirkle4qDRnkk+1teEkcN/bHq+Amv4BKrK+9xNy4B6RdWPH0O9S2vfnAC5RqmuoSCFwqWXzTINoWGYH+TqqL24KvjhXOWQ43E 

是有辦法解決這個問題?

回答

1

我想出了一個解決方法,這對未來某個人可能有用,也可能不會有用。

我用awk函數和for循環來將我的輸入文件分成幾塊,然後運行curl命令來解決這個問題。

awk ' 
    BEGIN{ fn = "xxx"; n = 1} 
    { 
    print > fn 
    if (match($0,"YYYID")) { 
    close (fn) 
    n++ 
    fn = "xxx" n 
    } 
    }' inputfile 

    for j in xxx* 
    do 
{   
curl -X POST --data @$j -ik -u userid:password -H 'Accept: applicatin/xml' https://IPADDRESS/rest/XXX/XX/ 
     } done 
+0

如果有人有更好的主意,請分享它。這將有助於未來。謝謝。 – user2190101 2013-04-09 07:57:02

+0

如果你上傳了一大塊數據,'curl'似乎放在'Expect:HTTP/1.1 100 Continue'標題中。然後出現了一些問題。我懷疑你上傳的服務器在這種情況下不能正確處理多部分表單數據。 – sudo 2015-08-08 01:45:12