2015-12-30 60 views
3

我正在使用C++ REST SDK進行小型控制檯應用程序測試具有各種http查詢的服務器。一切工作正常,除了如果服務器無效(因爲它不存在),程序停止10秒,然後崩潰。我無法在文檔中找到任何有關正在發生的事情的線索。其他情況下,我可以處理得很好,但我不知道如何檢查服務器是否有效,所以我可以處理這個錯誤。下面的代碼的一部分它總是掛斷:C++ REST SDK如何檢查http地址是否無效

web::http::client::http_client newClient(queries[index], config); 
web::http::http_response response = newClient.request(web::http::methods::GET).get(); 

我認爲,如果服務器無效,獲得()不知道該怎麼回報,這就是爲什麼該程序關閉,但我我不確定。請告訴我如何解決這個問題的正確方向。

+0

有很多事情可能會出錯。沒有DNS?端口未打開?我甚至不知道你在用什麼庫。 –

+1

C++ REST SDK是庫。我故意使用服務器,我知道不會工作,所以我知道當最終用戶不小心告訴它使用錯誤的服務器或未能正確設置它時會發生什麼情況 - 如果程序提供IP地址到可以工作的服務器。我只需要知道在使用REST SDK讀取響應之前是否有任何方法可以檢查給定的服務器是否可訪問。 –

+0

這是一個令人難以置信的令人難以置信的圖書館名稱。 –

回答

1
web::http::http_response response = newClient.request(web::http::methods::GET).get(); 

- >要調用.get()request()一個retrun值可能是無效的。所以,你可以嘗試分裂如下:

_some_type_ request_result = newClient.request(web::http::methods::GET); 

(你要查找什麼_some_type_需求來定)

檢查request_result,以及它是否可以撥打電話:

request_result.get(); 

否則,提供錯誤消息。

+0

太好了,修好了!感謝您的幫助和明確的答案! –

相關問題