SOAP::EmptyResponseError

Witam, mam problem. Bawię się webapi allegro i przy metodzie doSearch dostaję taki błąd SOAP::EmptyResponseError
Bardzo niewiele o tym w necie, tylko tyle że coś ma to wspólnego z proxy (nie używam żadnego). Metody np. login działają poprawnie.
Co to za błąd? Może ktoś sie spotkał z czymś takim.
Nie wiem czy wklejanie kodu coś tu da ale daje:

[quote]gem ‘soap4r’
require ‘soap/wsdlDriver’
require ‘xmlrpc/client’

def question
wsdlfile = “http://webapi.allegro.pl/uploader.php?wsdl
driver = SOAP::WSDLDriverFactory.new(wsdlfile).create_rpc_driver
XSD::Charset.encoding = ‘UTF8’
wersja = driver.doQuerySysStatus(1, 1, apikey)
sesja = driver.doLogin(login, password, 1, apikey, wersja[1])
wyniki = driver.doSearch(sesja, “nokia”)
end
end[/quote]
bład:

[quote]SOAP::EmptyResponseError

/home/pski/.gem/ruby/1.8/gems/soap4r-1.5.8/lib/soap/rpc/proxy.rb:147:in call' /home/pski/.gem/ruby/1.8/gems/soap4r-1.5.8/lib/soap/rpc/driver.rb:181:incall’
(eval):6:in doSearch' app/controllers/client_controller.rb:25:inquestion’[/quote]
Help…

hej,

A jak sobie poradziłeś z definicją WSDLa? Wydaje mi się, że nie jest poprawnie zrobiona. Dopiero jak poprawiłem WSDLa po swojemu, umieściłem u siebie na kompie i pobierałem lokalnie to zaczęło działać.

W podanym przez Ciebie kodzie jest błąd w linijce
wyniki = driver.doSearch(sesja, “nokia”)

Powinno byc:
wyniki = driver.doSearch(sesja[0], tablica_warunkow_wyszukiwania)

w tablica_warunkow_wyszukiwania definiujesz co i jak chcesz wyszukiwac

Odpowiedź na pytanie jak sobie poradzić z tak zdefiniowanym WSDLem już znalazłem. WSDL jest jednak dobrze zdefiniowany.

RayDeAlu a możesz podpowiedzieć jak sformułować doSearch, robię tak:

[quote]dupax = Array.new
dupax = [“search-string”=>“mx5”,
“search-options”=>1,
“search-order”=>1,
“search-order-type”=>0,
“search-country”=>nil,
“search-category”=>nil,
“search-offset”=>nil,
“search-city”=>nil,
“search-state”=>nil,
“search-price-from”=>nil,
“search-price-to”=>nil,
“search-limit” => 10
]

wyniki = driver.doSearch(sesja[0], dupax)[/quote]
i dostaję:

[quote]SOAP::FaultError in ClientController#question

Wyszukiwane wyrażenie jest zbyt krótkie!

RAILS_ROOT: /home/pski/NetBeansProjects/webclient
Application Trace | Framework Trace | Full Trace

#[/quote]
help

Prawie dobrze,

tablica ma być asocjacyjna (Hash)

No i wszystko śmiga.
Wielkie Bóg zapłać RayDeAl :slight_smile: