2013-12-23 1 views
0

스택 오버플로에 게시하는 것이 처음이므로 ... 레일을 사용하여 API 호출을 시도 할 때 문제가 발생하지만 계속 처리 중입니다. HTTPClient::KeepAliveDisconnected 오류. Ruby와 레일을 처음 접했으므로 어디에서부터 시작해야할지 모르겠습니다. 여기 레일 Savon HTTPClient :: KeepAliveDisconnected 문제

내 소스는

...

site_ids = { 'int' => (An integer) } 
source_credentials = { 'SourceName' => '(username)', 'Password' => '(password)', 'SiteIDs' => site_ids } 
user_credentials = { 'Username' => '(another username)', 'Password' => '(another password)', 'SiteIDs' => site_ids } 

####################### 
## Standard API call ## 
####################### 

#Create Savon client using default settings 
http_client = Savon.client(wsdl: "(Valid WSDL location)") 

#Create request and package it for the call 
http_request = { 'SourceCredentials' => source_credentials, 'UserCredentials' => user_credentials } 
params = { 'Request' => http_request } 

#Run the call and store the results 
result = http_client.call(:get_staff, params) 

이 실행하려고 후, 나는 얻을 다음과 같은 오류 : http_request.call

어떤 제안을 사용하여 라인에

HTTPClient::KeepAliveDisconnected ?

+0

어떤 버전에 대한 엔드 포인트를 지정할 수 있습니다이 경우

req = client.build_request(:action, message: data) req.url req.ssl? 

를 사용하고 있습니까? – usha

+0

사용중인 httpclient의 버전은 2.3.4.1입니다. –

답변

0

동일한 문제가있었습니다.

내 상황에 대한 해결책 : 내 리소스가 https를 통해 작동했지만 http 엔드 포인트로 wsdl - server 응답으로 데이터를 수신했습니다. 그 결과 - savon은 http를 통해 비누 요청을했습니다. 그냥 HttpClient를의 savon

client = Savon.client(wsdl: YOUR_URL_WITH_WSDL, endpoint: YOUR_URL) # wsdl