调用.net Web服务对xampp进行了哪些更改

时间:2011-12-11 10:49:10

标签: web-services drupal xampp

我正在研究Drupal 6创建自己的自定义模块。直到最近,我才能从我的php文件中调用我的.net Web服务。我记得我已经在xampp设置中搜索了一个修改(我依旧记得它是php.ini)。但我的系统崩溃了,我需要重新开始。我的模块代码完好无损;但是,Web服务调用不会起作用。

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://freeway.demo.lionbridge.com/vojo/FreewayAuth.asmx?wsdl' : failed to load external entity "https://freeway.demo.lionbridge.com/vojo/FreewayAuth.asmx?wsdl" in C:\xampp\htdocs\drupalHome\sites\all\modules\freeway_module\freeway.admin.inc:22 Stack trace: #0 C:\xampp\htdocs\drupalHome\sites\all\modules\freeway_module\freeway.admin.inc(22): SoapClient->SoapClient('https://freeway...', Array) #1 [internal function]: send_for_translation(Array) #2 C:\xampp\htdocs\drupalHome\includes\form.inc(377): call_user_func_array('send_for_transl...', Array) #3 [internal function]: drupal_retrieve_form('send_for_transl...', Array) #4 C:\xampp\htdocs\drupalHome\includes\form.inc(103): call_user_func_array('drupal_retrieve...', Array) #5 [internal function]: drupal_get_form('send_for_transl...') #6 C:\xampp\htdocs\drupalHome\includes\menu.inc(349): call_user_func_array('drupal_get_form', Array) #7 C:\xampp\htdocs\drupalHome\index.php(17): m in C:\xampp\htdocs\drupalHome\sites\all\modules\freeway_module\freeway.admin.inc on line 22

这是为身份验证Web服务登录调用而引发的错误。

这是代码

$LoginClient = new SoapClient("https://freeway.demo.lionbridge.com/vojo/FreewayAuth.asmx?wsdl", array("trace"=>1)); 
        $ServicesLink = new SoapClient("https://freeway.demo.lionbridge.com/vojo/Service.asmx?wsdl", array("trace"=>1));


          try{

          $arrResponse = $LoginClient->Logon(array ('Username'=>'username','Password'=>'password'));
          $ticket = ($arrResponse->LogonResult);
          $getSrcLang = $ServicesLink->GetSourceLanguages(array('Ticket'=>$ticket));
          $getDraftProjectIds = $ServicesLink->GetProjectSummariesList(array('Ticket'=>$ticket,'NumberOfProjects'=>100,'SortOrder'=>MostRecent,'ProjectStatusCode'=>'Draft'));

                        $array = array();
                        $arrayT = array();
                        $forTarLang = array();
                        $listOfProjects = array();

                        foreach($getSrcLang->GetSourceLanguagesResult->Languages->Language as $language)                
                        {                                       
                          $array[$language->ID] = $language->Description."_".$language->ID;                                 
                            $forTarLang[] = $language->ID;
                        }


                        foreach($getDraftProjectIds->GetProjectSummariesListResult->ProjectSummaries->ProjectSummary as $projectSummary)
                        {
                          $listOfProjects[$projectSummary->ID] = $projectSummary-> ID;
                        }

                                    $tarLang = array();                     

          }
              catch (SoapFault $exception){
              return $exception;
              }

                      try{

                      if (count($forTarLang)!=0){
                            $getTarLang = $ServicesLink->GetTargetLanguages(array('Ticket'=>$ticket,'SourceLanguageID'=>$forTarLang[0]));

                            foreach($getTarLang->GetTargetLanguagesResult->Languages->Language as $languageT)   
                                {                   
                                $arrayT[$languageT->ID] = $languageT->Description;                                                                  
                                }                               
                        }
                     } 
                      catch (SoapFault $exception1){
                       return $exception1;
                      }

想知道是否有人对此有任何提示。不幸的是,我正试图找到我所拥有的解决方案。任何帮助都是非常宝贵的。

1 个答案:

答案 0 :(得分:1)

解决方案是在ext文件夹中添加php_openssl.dll。