2016-03-24 138 views
0

有一些麻煩與Express REST API通過Java進行通信。Java post http請求(express)REST api

一個簡單的途徑是在網上:http://localhost:5555/test

router.post('/test', function (req, res, next) { 
    console.log("recived request"); 
    res.sendStatus(200); 
}); 

正如你可以看到,這條路線並沒有做很多壽,只用於連接測試目的。

花費時間搜索小時,但沒有找到一個很好的例子呢。

還是得到了這個代碼的和平,但得到了異常。

URL url = new URL("http://localhost:5555/test"); 
HttpURLConnection connection = (HttpURLConnection)url.openConnection(); 
connection.setRequestMethod("POST"); 
connection.setDoOutput(true); 
OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream()); 
writer.write("test"); 

如果有人知道代碼的和平我可以工作,那太棒了!

感謝

編輯 服務器正在運行:

> node index.js 
server running on port: 5555 
connection open 

異常從Java:

System.err: null 

回答

1

您的明確路線期待一個POST和你的代碼做了GET請求( openConnection)。嘗試將其更改爲get,然後重試您的操作。

+0

這不起作用 –

+0

你能不能給錯誤的任何更多的反饋你得到並更新你的問題,以便其他人可以幫助? –

+0

我會得到的錯誤是空的,真的很奇怪 –

0

因爲您的路線接受POST方法,您可能有2個選項。

  1. 在Java代碼的請求方式更改爲POST

    connection.setRequestMethod("POST"); 
    
  2. 變更路線接受GET

+0

嗨,更新了我的文章。忘記在以前的代碼setRequestMethod,但也不會工作.. –

+0

那麼,我有一些建議給你:1.你應該使用一些記錄器來幫助你調試請求的過程; 2.檢查你的防火牆; 3.使用瀏覽器或Chrome應用程序中的「Postman」來驗證您的服務器是否正確設置,然後再繼續。 – Rugal