Подключение к Bing Maps SDK из приложения Rails - PullRequest
0 голосов
/ 09 июля 2009

Я пытаюсь подключиться к 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

Ответы [ 2 ]

0 голосов
/ 20 октября 2015

Пользователь savon для обработки wsdl, а затем используйте геокод для вычисления расстояния между двумя точками. потому что API Bing Map не дает прямой ' разницы расстояний ', но предоставляет нам широту / долготу точек. а геокодер может дать более точное расстояние между двумя парами широта / долгота

0 голосов
/ 21 июля 2010

Проверьте библиотеку Ruby Savon , безусловно, лучший SOAP-клиент в Ruby.

...