2017-01-12 45 views
1

我在hapi fhir數據庫上運行了一個查詢,該數據庫已經將分頁結果返回給我。我使用的是高致病性禽流感基地在java中真正做搜索,按文件位置:http://hapifhir.io/doc_rest_client.html在分頁的fhir響應中迭代

Bundle bundle = client.search().forResource(Basic.class).returnBundle(ca.uhn.fhir.model.dstu2.resource.Bundle.class).execute(); 
    do { 

     for (Entry entry: bundle.getEntry()) 
      System.out.println(entry.getFullUrl()); 

     if (bundle.getLink(Bundle.LINK_NEXT) != null) 
      bundle = client.loadPage().next(bundle).execute(); 
     else 
      bundle = null; 
    } 
    while (bundle != null); 

的代碼的運行就得到第一包,並打印出的URL如預期,但是當它試圖執行下一個包,我得到一個ConnectionException'連接被拒絕:連接'。

服務器仍然顯示響應,但我可以重新運行我的程序,並返回完全相同的結果。

任何想法爲什麼連接會被拒絕?當我嘗試從郵遞員手動運行它時,我遇到了類似的問題。

回答

0

以防萬一誰絆倒這個。我進行了某種重定向(由我的團隊的另一位成員設置)。本質上我的基地網址是localhost:8080,但下一個地址返回爲localhost:1080(我不完全明白爲什麼)。

他改變了服務器中的配置,使其不重定向。

2

你在做什麼當然看起來是正確的。如果您手動執行搜索(例如,使用瀏覽器或郵遞員等),下一個鏈接的樣子是什麼?如果您也直接在瀏覽器中使用該鏈接,它會起作用嗎?

例如,如果我在我的機器上運行的CLI在本地,並執行搜索我看到以下響應:

"link": [ 
    { 
    "relation": "self", 
    "url": "http://localhost:8080/baseDstu3/_history" 
}, 
{ 
    "relation": "next", 
    "url": "http://localhost:8080/baseDstu3?_getpages=d8454866-624d-4bb3-b7a0-0858e4870e7e&_getpagesoffset=10&_count=10&_pretty=true&_bundletype=history" 
} 
], 

如果我塞下一個鏈接(http://localhost:8080/baseDstu3?_getpages=d8454866-624d-4bb3-b7a0-0858e4870e7e&_getpagesoffset=10&_count=10&_pretty=true&_bundletype=history)到瀏覽器中,我進入下一頁。

你可以試試看看它是怎麼回事?