2013-03-04 120 views
-1

我的代码如下所示,并打印出客户端的所有输入。HTTP Post issue

除此之外,当我尝试阅读,无后数据来自通过......

while ((s = input.readLine()) != null){ 
    System.out.println(s); 
} 

我的帖子的数据:

POST/HTTP/1.1 
Host: localhost 
Connection: keep-alive 
Content-Length: 27 
Cache-Control: max-age=0 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Origin: (http://) localhost 
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22 
Content-Type: application/x-www-form-urlencoded 
Referer: (http://) localhost/ 
Accept-Encoding: gzip,deflate,sdch 
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 

所以我不收到任何数据,除了我把表格放入我的HTML中

<form method="post"> 
    TestText: <input type="text" name="test1"><br> 
    TestText2: <input type="text" name="test2"> 
    <input type="submit" value="Submit"> 
</form> 

那么有什么想法?

我编写自己的HTTP服务器,所以我已经实现了一个方法来获取POST,GET和其他的东西

+1

你使用Apache HttpClient或Servlet或其他技术? – 2013-03-04 17:35:27

+0

我可以看到您的表单没有任何操作,可能会导致问题。 – 2013-03-04 17:36:37

+0

如果它没有操作属性,它会自行发布。我不知道这是他想做的事。 – 2013-03-04 17:38:25

回答

1

因为我还不能发表评论(感谢SO),我要发布我的评论作为答案。

由于Content-Length标头不是0,我假定请求主体确实包含表单数据,即使您没有将其包含在您的发布数据中。

如果是这样,那么我们需要看看input变量来自哪里,以便知道它为什么不包含预期数据。我建议你修改你的问题并添加设置input变量的代码。

+0

这是问题,Content-Length显示一个数字,但我不接收POST数据。 input是一个'InputStream'类,它是套接字的输入流。 – KeirDavis 2013-03-05 07:47:08

+0

在这种情况下,我不太清楚如何在'input'变量上调用readLine(),因为'InputStream'接口没有readLine()方法。 而是,我会尝试: 'StringBuilder str = new StringBuilder(); int s;当((s = input.read())> -1) str.append(s); System.out.println(str.toString());' – bluecollarcoder 2013-03-06 00:36:33