2011-12-21 115 views
0

我得到HTTP/1.1 500內部服務器錯誤我想要做的是我發送一個http數據包雖然套接字http數據包包含數據和文件這裏是我的數據包文件上傳失敗使用HTTP POST通過C++

POST /my/service HTTP/1.0 
Host: myhostname.com 
Accept: */* 
Content-Type: multipart/form-data; boundary=----acbn1234 
Content-Length: 62 

------acbn1234 
Content-Disposition: form-data; name="segment" 

name 
------acbn1234 
Content-Disposition: form-data; name="segid" 

abc123 
------acbn1234 
Content-Disposition: form-data; name="segname" 

segment1 
------acbn1234 
Content-Disposition: form-data; name="txtfile"; filename="textfile.txt" 
Content-Type: text/plain 

segment information this the data in the file 
------acbn1234-- 

服務器端是Apache Tomcat服務器顯示了控制檯例外

SEVERE: Servlet.service() for servlet ssp-dispatcher threw exception 
org.apache.commons.fileupload.MultipartStream$MalformedStreamException: Stream ended unexpectedly 
    at org.apache.commons.fileupload.MultipartStream.readHeaders(MultipartStream.java:538) 
    at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.findNextItem(FileUploadBase.java:999) 
    at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.hasNext(FileUploadBase.java:1063) 
    at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:357) 
    at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126) 
    at org.springframework.web.multipart.commons.CommonsMultipartResolver.parseRequest(CommonsMultipartResolver.java:155) 
    at org.springframework.web.multipart.commons.CommonsMultipartResolver.resolveMultipart(CommonsMultipartResolver.java:138) 
    at org.springframework.web.servlet.DispatcherServlet.checkMultipart(DispatcherServlet.java:887) 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:750) 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669) 
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:585) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291) 
    at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877) 
    at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:594) 
    at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675) 
    at java.lang.Thread.run(Unknown Source) 

哪裏我錯了,我的HTTP數據包是確定的服務器沒有顯示即404錯誤的請求我認爲這顯示內部服務器錯誤500 。?

回答

0

您的內容長度標題不正確。您的數據大約是400字節,而不是62.

+0

您好sjoerd是唯一的錯誤嗎?那麼服務器流顯示的堆棧跟蹤意外地結束了嗎? – smita 2011-12-21 16:02:15

+0

HTTP閱讀器只從流中讀取62個字節。然後多部分讀者抱怨它太短:它在預期之前結束。 – Sjoerd 2011-12-21 16:16:41