SBL-ODU-01007 HTTP-запрос не содержит действительный заголовок SOAPAction - PullRequest
1 голос
/ 13 сентября 2011

Я надеюсь, что кто-то может помочь мне в правильном направлении ...

Я использую Powerbuilder 12 Classic и пытаюсь использовать веб-службу Oracle CRM OnDemand.

Используя Msxml2.Команды XMLHTTP.4.0, я смог подключиться, используя https, и получить идентификатор сеанса, который мне нужно отправить обратно при вызове метода.

Когда я запускаю приведенный ниже код, я получаю SBL-ODU-01007 HTTP-запрос не содержит действительного сообщения об ошибке заголовка SOAPAction.Я не уверен, что мне не хватает ??

OleObject loo_xmlhttp

ls_get_url = "https://secure-ausomxxxx.crmondemand.com/Services/Integration?command=login"

try
  loo_xmlhttp = CREATE oleobject
  loo_xmlhttp.ConnectToNewObject("Msxml2.XMLHTTP.4.0")

  loo_xmlhttp.open ("GET",ls_get_url, false)
  loo_xmlhttp.setRequestHeader("UserName", "xxxxxxx")
  loo_xmlhttp.setRequestHeader("Password", "xxxxxxx")

  loo_xmlhttp.send()

  cookie = loo_xmlhttp.getResponseHeader("Set-Cookie")

  sesId = mid(cookie, pos(cookie,"=", 1)+1, pos(cookie,";", 1)-(pos(cookie,"=", 1)+1))


  ls_post_url = "https://secure-ausomxxxx.crmondemand.com/Services/Integration/Activity;"
  ls_response_text = "jsessionid=" + sesId + ";"

  ls_post_url = ls_post_url + ls_response_text

  loo_xmlhttp.open ("POST",ls_post_url, false)

  loo_xmlhttp.setRequestHeader("COOKIE", left(cookie,pos(cookie,";",1)-1) ) 
  loo_xmlhttp.setRequestHeader("COOKIE", left(cookie,pos(cookie,";",1)-1) )

  ls_post_url2 = "document/urn:crmondemand/ws/activity/10/2004:Activity_QueryPage"

  loo_xmlhttp.setRequestHeader("SOAPAction", ls_post_url2)  

  loo_xmlhttp.send()

  ls_get_url = "https://secure-ausomxxxx.crmondemand.com/Services/Integration?command=logoff"

  loo_xmlhttp.open ("POST",ls_get_url, false)

  loo_xmlhttp.send()


catch (RuntimeError rte)

  MessageBox("Error", "RuntimeError - " + rte.getMessage())

end try

Ответы [ 3 ]

1 голос
/ 03 октября 2012

Я полагаю, что вы используете неверный URL для входа и выхода;

Вот пример:

Остальная часть кода выглядит хорошо для меня.

0 голосов
/ 12 апреля 2013

вам нужно убедиться, что ваше значение для ls_post_url2 является одним из значений, найденных в файле wsdl.Просто найдите «soap: operation soapAction» в файле wsdl, чтобы увидеть действительные значения SOAPAction.

0 голосов
/ 25 октября 2011

Я столкнулся с подобными проблемами в PB с msxml через ole. Добавление этого может помочь:

loo_xmlhttp.setRequestHeader("Content-Type", "text/xml")

...