2012-07-10 69 views
2

我在使用生成的存根與第三方軟件時有一些限制。所以,我正在尋找其他選項,如簡單的HTTP請求和響應來獲得結果。我可能需要將5或6個參數傳遞給一個操作,並從Web服務獲取一個輸出。我可以作爲HTTP請求調用Web服務嗎?

我可以創建一個簡單的JSP文件,它在內部調用web服務。我可以通過HTTP請求調用這個JSP。我想檢查是否有其他選項。

我使用的是JDK1.6,JBoss 5.1。

回答

6

SOAP Web服務請求是您可以使用任何客戶端觸發的正常POST HTTP請求,包括簡單的URLConnection甚至curl。參見:Sending a SOAP request to a Web Service via URLConnection

你不需要一個JSP(實際上,從維護的角度來看,從JSP調用外部Web服務是一個可怕的想法)。您可以從任何Java代碼調用Web服務,甚至可以直接從main方法中調用。

+0

我得到這個混合的結果。 1)嘗試http://www.webservicex.net/stockquote.asmx,我得到HTTP 500錯誤。 2)我嘗試了另一個私人服務,我得到HTTP響應415. 3)我測試了另一個,它工作正常。 – priceline 2012-07-10 21:08:25

+0

@priceline:添加'Content-Type:text/xml; charset = utf-8'或'Content-Type:application/xml'頭文件,應該修復'2)' – 2012-07-10 21:19:46

+1

一旦我設置了內容類型,我的第二個選項就起作用了。 conn.setRequestProperty(「Content-Type」,「text/xml; charset = utf-8」);編輯:托馬斯,它的工作..我以前沒有看到你的消息。謝謝, – priceline 2012-07-10 21:35:21

1

嘗試了這一點...

public void postData() throws Exception { 


HttpClient client = new DefaultHttpClient(); 
HttpPost httppost = new HttpPost("https://www.xyz.com"); 

List<NameValuePair> list = new ArrayList<NameValuePair>(1); 

list.add(new BasicNameValuePair("name","ABC"); 

httppost.setEntity(new UrlEncodedFormEntity(list)); 

HttpResponse r = client.execute(httppost); 

} 
0

我同意托馬斯Nurkiewicz。不要使用JSP來調用Web服務。

相反,創建一個Web服務來調用您需要的其他Web服務。通過這種方式,您可以在返回響應之前輕鬆處理結果。

使用註釋可以在JBoss上輕鬆創建Web服務。

相關問題