2010-04-30 85 views
1

我有一個網站(python/django)需要使用可能或可能不在同一臺服務器上的Java資源負載。因此,我正在用Java編寫一個迷你網絡服務器,它將接收到一個請求,然後在處理完成後,將一些數據發回網站上的網址。Java:從HTTP服務器上的套接字讀取POST數據

我已經得到了java代碼在套接字上接收連接並用一些簡單的HTML進行響應。

我的問題是我將POST數據發送到Java服務器,並且該代碼需要對數據執行操作。如果甚至有可能,我該如何去閱讀HTML請求中發佈的數據。如果沒有,是否有其他方式可以做到這一點。

如果您認爲我完全以錯誤的方式討論這個問題,那麼請告訴我,我會考慮另一種方法,但在與一些Java開發人員交談後,這似乎是我正在做的最好的方法。

謝謝

回答

4

你可能並不需要自己寫,只是用一些輕量級的Java Web服務器/ servlet容器像jettysimple

,看起來在這裏,如果你還是想知道如何解析HTTP POST一個HTTP服務器要求http://www.jmarshall.com/easy/http/#postmethod

+0

我將嘗試嵌入碼頭。我可以看到它有很好的文檔,但是它都假設你知道如何將代碼嵌入到jar文件中。我不。 – danpalmer 2010-04-30 18:41:56

+0

我確實設法嵌入碼頭,它非常棒。謝謝你說服我這樣做。你爲我節省了很多編碼,並且把我的頭髮撕了很多! – danpalmer 2010-05-07 17:11:02

0

在你的情況下,我可能不會使用低級套接字連接。

我建議你根據你的需要,使用一些servlet容器,或者只是一個簡單的servlet。使用servlet可以輕鬆訪問POST數據,處理它並向調用者返回一些內容。

如果您不想使用像Tomcat這樣的獨立servlet容器,那麼您可以嘗試一個可嵌入的servlet容器,如Jetty或winstone servlet容器。

如果您需要更復雜的東西,可以使用一些Web服務技術,如JAX-RS或JAX-WS。這允許您以簡單的方式爲Java資源提供全功能的API。

+0

嗯。我真的不想使用任何複雜的東西。我的資源非常有限,代碼只接收兩種請求,根本不需要發出響應。越簡單越好,因此我爲什麼使用套接字。另外,我的網絡主機不支持你上面提到的任何我不認爲的東西。目前,測試代碼僅僅是一個我運行的Jar文件,它等待連接。 – danpalmer 2010-04-30 16:54:39

+0

實現你自己的http服務器真的很乏味,容易出錯。使用winstone,您仍然可以堅持使用單個jar並使用完整的servlet api,請參閱:http://winstone.sourceforge.net/#embedding。碼頭也可能是相同的,或者第5號已經提到「簡單」。 – 2010-04-30 17:20:09

+0

我想我會在我的應用程序中嵌入Jetty,因爲它們的嵌入文檔看起來非常好。但是我不想嵌入我不需要的所有位。我如何弄清楚我的內容和我不知道的內容,以及如何將代碼添加到我的應用程序中?與Visual Studio和Xcode相比,Eclipse易於使用,所以我無法弄清楚如何去做。有大量不同的導入方法! – danpalmer 2010-04-30 18:41:10

相關問題