Я пытаюсь подключиться к Bing Maps SDK через приложение RoR. Моя цель - рассчитать расстояние между двумя точками после их геокодирования. Я новичок в SOAP и ROR, поэтому я могу сделать простую ошибку.
Два дня гуглинга (Binging?), И у меня не хватает. Вот что я делаю:
Окружающая среда
Ruby 1.8.7 в Windows Vista (на следующей неделе появится Mac).
gem install httpclient --source http://dev.ctor.org/download/
gem install soap4r --include-dependencies
Тест браузера
Переход к https://staging.common.virtualearth.net/find-30/common.asmx?wsdl Мне предлагают имя пользователя и пароль. Я могу ввести оба успешно и получить файл WSDL. Так что URL, ИД пользователя и пароль верны .
код
require 'rubygems'
gem 'soap4r'
require 'httpclient'
require "soap/wsdlDriver"
user = "XXXXXX"
pass = "XXXXXXX"
wsdl = "https://staging.common.virtualearth.net/find-30/common.asmx?wsdl"
driver = SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
driver.options["protocol.http.basic_auth"] << [wsdl,user,pass]
Консольный вывод
driver = SOAP :: WSDLDriverFactory.new (wsdl) .create_rpc_driver
HTTPClient :: BadResponseError: неожиданный ответ : <#HTTP :: Message :: Headers: 0x4f6cabc @reason_phrase = "<strong> Несанкционировано ", @ request_uri = nil,
@ body_date = nil, @ status_code = 401, @ dumped = false, @ request_method = nil, @ chunked = false,
@ body_charset = nil, @ request_via_proxy = nil, @header_item = [["Connection", "close"],
[«Дата», «Чт, 09 июля 2009 г. 02:53:59 GMT»], [«Сервер», «Microsoft-IIS / 6.0»],
["P3P", "CP = \" BUS CUR CONo FIN IVDo ONL НАШ ФИ САМО ТЕЛО \ ""],
["X-Powered-By", "ASP.NET"], ["WWW-Authenticate", "Digest qop = \" auth \ ", realm = \"
MapPoint \ ", nonce = \" 87b3d5847da867f7930801742100f2e55de88fd216317a696fe1411f79e3 \ ""],
["Content-Length", "0"]], @ body_size = 0, @ http_version = "1.1", @ body_type = nil, @ request_query = nil, @ is_request = false>
от c: /ruby/lib/ruby/gems/1.8/gems/httpclient-2.1.5.2/lib/httpclient.rb: 840: в `follow_redirect '
Отзывы, которые я просмотрел
Вполне возможно, что у одного из них есть ответ. Мне просто не хватает фона в SOAP, чтобы найти его ...
http://hideoustriumph.wordpress.com/2008/05/05/ws-deathstar-for-the-rest-of-us/
http://s2.diffuse.it/blog/show/62-Consume_SSL_protected_Web_Services_with_soap4r
http://dev.ctor.org/doc/soap4r/RELEASE_en.html#samples
http://markthomas.org/2007/09/12/getting-started-with-soap4r/
http://www.elctech.com/articles/consuming-soap-with-ruby-and-soap-mapping-object
http://wso2.org/project/wsf/ruby/1.1.0/docs/manual.html
http://www.globalnerdy.com/2009/06/29/learnhub-powered-by-rails-searches-with-bing/
http://rpheath.com/posts/298-consuming-soap-services-in-ruby