簡體   English   中英

CouchDb,Java:HTTP實體可能不為空

[英]CouchDb, Java: HTTP entity may not be null

在我的Java應用程序中,我試圖在外部服務器上連接到couchDb。 我看到錯誤消息連接超時。

錯誤消息:

SEVERE: Allocate exception for servlet servlets.Chat
java.lang.IllegalArgumentException: **HTTP entity may not be null**
    at org.apache.http.util.EntityUtils.toString(EntityUtils.java:200)
    at org.apache.http.util.EntityUtils.toString(EntityUtils.java:273)

我的CouchDb屬性

CouchDbProperties prop = new CouchDbProperties()
    .setDbName("lcouchdb")
    .setCreateDbIfNotExist(true)
    .setHost("chatapp.couchappy.com")
    .setPort(80)
    .setUsername("abc@gmail.com")
    .setPassword("bla blaaa")
    .setProtocol("http");       

我已經嘗試刪除.setPort(80)我的應用程序再次拋出錯誤

    java.lang.IllegalArgumentException: Port is invalid: 0

5984是couchdb的默認端口,但在Couchappy托管上,為了提高安全性,只允許端口443上的https。

端口80或5984上的普通http可能不安全並且容易發生中間人攻擊,因此為了完全防止這種情況,Couchappy工作人員決定僅接受端口443上的ssl上的連接。

443是瀏覽器在使用https時使用的默認端口。 所以這意味着Couchappy用戶可以在其上托管任何類型的數據,甚至是網站,讓他們的訪問者和谷歌索引機器人訪問它的網址https://thedomainyouwant.couchappy.com而不是丑陋的http:// thedomainyouwant .couchappy.com:5984

請注意,如果您使用某種類型的Java庫或類似的東西,則應明確設置協議“https”和端口“443”而不是5984。

感謝您的提問,我們也將在Couchappy網站上准備一個FAQ頁面。

好吧它超時,因為服務器沒有響應,而不是代碼問題

curl -v http://chatapp.couchappy.com:5984/
* Adding handle: conn: 0x7f88c2804000
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x7f88c2804000) send_pipe: 1, recv_pipe: 0
* About to connect() to chatapp.couchappy.com port 5984 (#0)
*   Trying 62.149.192.34...

在我的情況下,我再次閱讀服務器api文檔后得到狀態代碼204沒有實體我發現204實際上是服務器收到信息的標志,一切正常。

干杯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM