Web services 如何通过PLSQL调用soap Web服务

Web services 如何通过PLSQL调用soap Web服务,web-services,soap,plsql,Web Services,Soap,Plsql,这是我的Web服务链接 http://83.143.26.34/MMWebService/MMWebSrv.asmx?WSDL 我想通过PLSQL调用SendTextMessage方法。有人能帮我吗 这是我使用的plsql代码。我得到超时异常。但通过SOAP-UI就可以了 declare l_request soap_api.t_request; l_response soap_api.t_response; l_return VARCHAR2(32767)

这是我的Web服务链接

http://83.143.26.34/MMWebService/MMWebSrv.asmx?WSDL
我想通过PLSQL调用SendTextMessage方法。有人能帮我吗

这是我使用的plsql代码。我得到超时异常。但通过SOAP-UI就可以了

declare
  l_request     soap_api.t_request;
  l_response    soap_api.t_response;
  l_return      VARCHAR2(32767);
  l_url         VARCHAR2(32767);
  l_namespace   VARCHAR2(32767);
  l_method      VARCHAR2(32767);
  l_soap_action VARCHAR2(32767);
  l_result_name VARCHAR2(32767);

BEGIN

  l_url         := 'http://83.143.26.34:4000/MMWebService/MMWebSrv.asmx';
  l_namespace   := 'xmlns:ser="urn:MMWebSrvService"';
  l_method      := 'SendTextMessage';
  l_soap_action := l_url || '/' || l_method;
  l_result_name := 'return';
  l_request     :=  soap_api.new_request(p_method    => l_method,
                                             p_namespace => l_namespace);
  soap_api.add_parameter(p_request => l_request,
                              p_name    => 'strUsername',
                              p_type    => 'xsd:string',
                              p_value   => 'BIHL');
   soap_api.add_parameter(p_request => l_request,
                              p_name    => 'strPassword',
                              p_type    => 'xsd:string',
                              p_value   => 'monday@123');
   soap_api.add_parameter(p_request => l_request,
                              p_name    => 'strFrom',
                              p_type    => 'xsd:string',
                              p_value   => 'UserFrom');
   soap_api.add_parameter(p_request => l_request,
                              p_name    => 'strTo',
                              p_type    => 'xsd:string',
                              p_value   => '74747574');
    soap_api.add_parameter(p_request => l_request,
                               p_name    => 'strMessage',
                               p_type    => 'xsd:string',
                               p_value   => 'UserMsg');
   soap_api.add_parameter(p_request => l_request,
                              p_name    => 'strSubject',
                              p_type    => 'xsd:string',
                              p_value   => 'UserSub');
   soap_api.add_parameter(p_request => l_request,
                              p_name    => 'strService',
                              p_type    => 'xsd:string',
                              p_value   => 'UserSrv');
   soap_api.add_parameter(p_request => l_request,
                              p_name    => 'nOptions',
                              p_type    => 'xsd:int',
                              p_value   => 10);
   soap_api.add_parameter(p_request => l_request,
                              p_name    => 'strTimeToSend',
                              p_type    => 'xsd:string',
                              p_value   => sysdate);
   soap_api.add_parameter(p_request => l_request,
                              p_name    => 'strReference',
                              p_type    => 'xsd:string',
                              p_value   => 'UserRef');
   soap_api.add_parameter(p_request => l_request,
                              p_name    => 'strBillText',
                              p_type    => 'xsd:string',
                              p_value   => 'UserTxt');
   soap_api.add_parameter(p_request => l_request,
                              p_name    => 'strSessionID',
                              p_type    => 'xsd:string',
                              p_value   => 'UserSID');

  l_response :=  soap_api.invoke(p_request  => l_request,
                                     p_url      => l_url,
                                     p_action   => l_soap_action);

  l_return := soap_api.get_return_value(p_response  => l_response,
                                             p_name      => l_result_name,
                                             p_namespace => NULL);

EXCEPTION
  WHEN OTHERS THEN
    pkg_pub_scd_ci.p_log_error('webservice to send a message' || ' -- ' ||
                               sqlerrm ||
                               dbms_utility.format_error_backtrace);
end;

可能值得一提的是,soap_api包是从哪里获得的,我猜是这样的:到目前为止,我看到的唯一问题是,您使用端口80获得WSDL,而您试图在端口4000上调用webservice,这不应该也是80吗?是的,ErikL。我收到了你刚才提到的包裹。我得到了同样的错误,即使我尝试与端口号为80。我仍然得到同样的错误。