2013-07-29 77 views
0

我正在尝试将XML源作为字符串发送到托管在SSL服务器上的REST服务。在过去的几个月里,我一直在为客户拉我的头发,他们说他们在他们的系统和外部工作,所以它必须是我们的服务器或我们的脚本,就他们而言。cURL SSL请求失败

这是PHP脚本。

<?php 

    $endURI  = 'https://****.****.com/Service.svc/CreateProject'; 

    function curlRequest($uri, $data = false) 
    { 
     $ch = curl_init(); 

     //curl_setopt($ch, CURLOPT_HEADER, true); 
     curl_setopt($ch, CURLINFO_HEADER_OUT, true); 
     curl_setopt($ch, CURLOPT_VERBOSE, true); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

     curl_setopt($ch, CURLOPT_URL, $uri); 

     if($data) 
     { 
      curl_setopt($ch, CURLOPT_POST, true); 
      curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
     } 

     $response = curl_exec($ch); 

     if($response) 
     { 
      echo $response; 
     } 
     else 
     { 
      echo 'Error Code (' . curl_errno($ch) . '): ' . curl_error($ch); 
      echo '<pre>'; 
      var_dump(curl_getinfo($ch)); 
      echo '</pre>'; 
     } 

     curl_close($ch); 
    } 

    if($_POST['data']) 
    { 
     curlRequest($endURI, simplexml_load_string($_POST['data'])); 
    } 

?> 

返回的错误并不是很有帮助,但我相信由于错误的上下文,这是错误的。

The server encountered an error processing the request. See server logs for more details. 

我会列出XML文件,以防万一有任何帮助,但我怀疑它。这只是测试数据,因此根本不敏感。

<?xml version="1.0" encoding="utf-8"?> 
<CreateProjectRequest> 
    <RequestHeader> 
    <VendorKey>****</VendorKey> 
    <Password>****</Password> 
    <CorrelationID>****</CorrelationID> 
    <QoS>QoS1</QoS> 
    </RequestHeader> 
    <RequestBody> 
    <Project ClientID="ClientID1" SourceID="SourceID1"> 
     <ProjectName>ProjectName1</ProjectName> 
     <BusinessUnit>HPE (BE)</BusinessUnit> 
     <LegalEntity>LegalEntity1</LegalEntity> 
     <ProjectStart>1900-01-01</ProjectStart> 
     <ProjectEnd>1900-01-01</ProjectEnd> 
     <ProjectStatus>Active</ProjectStatus> 
     <ExpectedPaymentDatePeriod>Jan-Mar</ExpectedPaymentDatePeriod> 
     <ExpectedPaymentDateYear>2012</ExpectedPaymentDateYear> 
     <PaymentCurrency>EUR - Euro Member Countries</PaymentCurrency> 
     <SupportingSupplements>Yes</SupportingSupplements> 
     <Revisions>Yes</Revisions> 
     <ForeignLanguageTranslations>Yes</ForeignLanguageTranslations> 
     <NumberOfEditions>This and Subsequent Editions</NumberOfEditions> 
     <PromotionalUse>Right to Display in context Project/Title - All Media</PromotionalUse> 
     <Derivatives>Yes</Derivatives> 
     <DerivativeSubcategory>Abridgements</DerivativeSubcategory> 
     <DerivativeSubcategory>Adaptations</DerivativeSubcategory> 
     <DerivativeSubcategory>Brief Editions</DerivativeSubcategory> 
     <AllMedia>Yes</AllMedia> 
     <Print>Yes</Print> 
     <Digital>Yes</Digital> 
     <WorldRights>Yes</WorldRights> 
     <WorldRightsExcludingNAmerica>Yes</WorldRightsExcludingNAmerica> 
     <NonWorldRights>Yes</NonWorldRights> 
     <TerritoriesOthers>TerritoriesOthers1</TerritoriesOthers> 
     <LanguageAll>Yes</LanguageAll> 
     <LanguageOthers>LanguageOthers1</LanguageOthers> 
     <TitleList> 
     <Title ClientID="ClientID1" SourceID="SourceID1"> 
      <Title>Title1</Title> 
      <SeriesTitle>SeriesTitle1</SeriesTitle> 
      <Authors>Authors1</Authors> 
      <PubDate>1900-01-01</PubDate> 
      <EditionNo>EditionNo1</EditionNo> 
      <ContentType>Audio</ContentType> 
      <IdentifierType>ISBN 13</IdentifierType> 
      <Identifier>Identifier1</Identifier> 
     </Title> 
     <Title ClientID="ClientID2" SourceID="SourceID2"> 
      <Title>Title2</Title> 
      <SeriesTitle>SeriesTitle2</SeriesTitle> 
      <Authors>Authors2</Authors> 
      <PubDate>0001-01-01</PubDate> 
      <EditionNo>EditionNo2</EditionNo> 
      <ContentType>Book</ContentType> 
      <IdentifierType>Product Code</IdentifierType> 
      <Identifier>Identifier2</Identifier> 
     </Title> 
     <Title ClientID="ClientID3" SourceID="SourceID3"> 
      <Title>Title3</Title> 
      <SeriesTitle>SeriesTitle3</SeriesTitle> 
      <Authors>Authors3</Authors> 
      <PubDate>9999-12-31</PubDate> 
      <EditionNo>EditionNo3</EditionNo> 
      <ContentType>CD-ROM</ContentType> 
      <IdentifierType>ISBN 13</IdentifierType> 
      <Identifier>Identifier3</Identifier> 
     </Title> 
     </TitleList> 
     <AssetList> 
     <Asset ClientID="ClientID1" SourceID="SourceID1"> 
      <ContentClass>Audio</ContentClass> 
      <ContentType>Activity</ContentType> 
      <CaptionDesc>CaptionDesc1</CaptionDesc> 
      <SourceName>SourceName1</SourceName> 
      <SourceAssetID>SourceAssetID1</SourceAssetID> 
      <CreditLine>CreditLine1</CreditLine> 
      <PearsonReferenceNo>PearsonReferenceNo1</PearsonReferenceNo> 
      <PermissionEditor>PermissionEditor1</PermissionEditor> 
      <CopyrightName>CopyrightName1</CopyrightName> 
      <Placement>All</Placement> 
      <CurrencyCode>EUR - Euro Member Countries</CurrencyCode> 
      <Pricing>Pricing1</Pricing> 
      <PreviouslyClearedbyPearson>Yes</PreviouslyClearedbyPearson> 
      <PearsonProductIdentifier>PearsonProductIdentifier1</PearsonProductIdentifier> 
      <SubscriptionDeal>Yes</SubscriptionDeal> 
      <Ownership>Ownership1</Ownership> 
      <RightsClass>Pearson Wholly Owned</RightsClass> 
      <ReuseStatus>Re-use prohibited</ReuseStatus> 
      <LicenseExpDate>1900-01-01</LicenseExpDate> 
      <LocationRelease>Obtained</LocationRelease> 
      <PerformanceRelease>Obtained</PerformanceRelease> 
      <ModelRelease>Obtained</ModelRelease> 
      <RightsAsRequested>Yes</RightsAsRequested> 
      <FormatAsRequested>Yes</FormatAsRequested> 
      <TerritoriesAsRequested>Yes</TerritoriesAsRequested> 
      <LanguageAsRequested>Yes</LanguageAsRequested> 
      <SupportingSupplements>Yes</SupportingSupplements> 
      <Revisions>Yes</Revisions> 
      <ForeignLanguageTranslations>Yes</ForeignLanguageTranslations> 
      <NumberOfEditions>This and Subsequent Editions</NumberOfEditions> 
      <PromotionalUse>Right to Display in context Project/Title - All Media</PromotionalUse> 
      <Derivatives>Yes</Derivatives> 
      <DerivativeSubcategory>Abridgements</DerivativeSubcategory> 
      <DerivativeSubcategory>Adaptations</DerivativeSubcategory> 
      <DerivativeSubcategory>Brief Editions</DerivativeSubcategory> 
      <AllMedia>Yes</AllMedia> 
      <AllMediaQuantity>AllMediaQuantity1</AllMediaQuantity> 
      <Print>Yes</Print> 
      <PrintQuantity>PrintQuantity1</PrintQuantity> 
      <Digital>Yes</Digital> 
      <DigitalQuantity>DigitalQuantity1</DigitalQuantity> 
      <WorldRights>Yes</WorldRights> 
      <WorldRightsExcludingNAmerica>Yes</WorldRightsExcludingNAmerica> 
      <NonWorldRights>Yes</NonWorldRights> 
      <OtherTerritories>OtherTerritories1</OtherTerritories> 
      <AllLanguages>Yes</AllLanguages> 
      <OtherLanguages>OtherLanguages1</OtherLanguages> 
      <RightsRestrictions>RightsRestrictions1</RightsRestrictions> 
      <GeneralComments>GeneralComments1</GeneralComments> 
      <PermissionCleared>Yes</PermissionCleared> 
      <TitleReferences> 
      <TitleRef ClientID="ClientID1" /> 
      <TitleRef ClientID="ClientID2" /> 
      <TitleRef ClientID="ClientID3" /> 
      </TitleReferences> 
     </Asset> 
     <Asset ClientID="ClientID2" SourceID="SourceID2"> 
      <ContentClass>Image</ContentClass> 
      <ContentType>Advertisement</ContentType> 
      <CaptionDesc>CaptionDesc2</CaptionDesc> 
      <SourceName>SourceName2</SourceName> 
      <SourceAssetID>SourceAssetID2</SourceAssetID> 
      <CreditLine>CreditLine2</CreditLine> 
      <PearsonReferenceNo>PearsonReferenceNo2</PearsonReferenceNo> 
      <PermissionEditor>PermissionEditor2</PermissionEditor> 
      <CopyrightName>CopyrightName2</CopyrightName> 
      <Placement>Cover</Placement> 
      <CurrencyCode>HKD - Hong Kong Dollar</CurrencyCode> 
      <Pricing>Pricing2</Pricing> 
      <PreviouslyClearedbyPearson>No</PreviouslyClearedbyPearson> 
      <PearsonProductIdentifier>PearsonProductIdentifier2</PearsonProductIdentifier> 
      <SubscriptionDeal>No</SubscriptionDeal> 
      <Ownership>Ownership2</Ownership> 
      <RightsClass>Rights Manged</RightsClass> 
      <ReuseStatus>Re-use permitted with clearance</ReuseStatus> 
      <LicenseExpDate>0001-01-01</LicenseExpDate> 
      <LocationRelease>Not Obtained</LocationRelease> 
      <PerformanceRelease>Not Obtained</PerformanceRelease> 
      <ModelRelease>Not Obtained</ModelRelease> 
      <RightsAsRequested>No</RightsAsRequested> 
      <FormatAsRequested>No</FormatAsRequested> 
      <TerritoriesAsRequested>No</TerritoriesAsRequested> 
      <LanguageAsRequested>No</LanguageAsRequested> 
      <SupportingSupplements>No</SupportingSupplements> 
      <Revisions>No</Revisions> 
      <ForeignLanguageTranslations>No</ForeignLanguageTranslations> 
      <NumberOfEditions>This Edition only</NumberOfEditions> 
      <PromotionalUse>Right to Display in context Project/Title - Digitial</PromotionalUse> 
      <Derivatives>No</Derivatives> 
      <DerivativeSubcategory>Custom Versions</DerivativeSubcategory> 
      <DerivativeSubcategory>Split Editions</DerivativeSubcategory> 
      <DerivativeSubcategory>Versions</DerivativeSubcategory> 
      <AllMedia>No</AllMedia> 
      <AllMediaQuantity>AllMediaQuantity2</AllMediaQuantity> 
      <Print>No</Print> 
      <PrintQuantity>PrintQuantity2</PrintQuantity> 
      <Digital>No</Digital> 
      <DigitalQuantity>DigitalQuantity2</DigitalQuantity> 
      <WorldRights>No</WorldRights> 
      <WorldRightsExcludingNAmerica>No</WorldRightsExcludingNAmerica> 
      <NonWorldRights>No</NonWorldRights> 
      <OtherTerritories>OtherTerritories2</OtherTerritories> 
      <AllLanguages>No</AllLanguages> 
      <OtherLanguages>OtherLanguages2</OtherLanguages> 
      <RightsRestrictions>RightsRestrictions2</RightsRestrictions> 
      <GeneralComments>GeneralComments2</GeneralComments> 
      <PermissionCleared>No</PermissionCleared> 
      <TitleReferences> 
      <TitleRef ClientID="ClientID4" /> 
      <TitleRef ClientID="ClientID5" /> 
      <TitleRef ClientID="ClientID6" /> 
      </TitleReferences> 
     </Asset> 
     <Asset ClientID="ClientID3" SourceID="SourceID3"> 
      <ContentClass>Text</ContentClass> 
      <ContentType>Appendices</ContentType> 
      <CaptionDesc>CaptionDesc3</CaptionDesc> 
      <SourceName>SourceName3</SourceName> 
      <SourceAssetID>SourceAssetID3</SourceAssetID> 
      <CreditLine>CreditLine3</CreditLine> 
      <PearsonReferenceNo>PearsonReferenceNo3</PearsonReferenceNo> 
      <PermissionEditor>PermissionEditor3</PermissionEditor> 
      <CopyrightName>CopyrightName3</CopyrightName> 
      <Placement>Electronic</Placement> 
      <CurrencyCode>ZAR - South African rand</CurrencyCode> 
      <Pricing>Pricing3</Pricing> 
      <PreviouslyClearedbyPearson>Yes</PreviouslyClearedbyPearson> 
      <PearsonProductIdentifier>PearsonProductIdentifier3</PearsonProductIdentifier> 
      <SubscriptionDeal>Yes</SubscriptionDeal> 
      <Ownership>Ownership3</Ownership> 
      <RightsClass>Royalty Free</RightsClass> 
      <ReuseStatus>Re-use prohibited</ReuseStatus> 
      <LicenseExpDate>9999-12-31</LicenseExpDate> 
      <LocationRelease>Not Applicable</LocationRelease> 
      <PerformanceRelease>Not Applicable</PerformanceRelease> 
      <ModelRelease>Not Applicable</ModelRelease> 
      <RightsAsRequested>Yes</RightsAsRequested> 
      <FormatAsRequested>Yes</FormatAsRequested> 
      <TerritoriesAsRequested>Yes</TerritoriesAsRequested> 
      <LanguageAsRequested>Yes</LanguageAsRequested> 
      <SupportingSupplements>Yes</SupportingSupplements> 
      <Revisions>Yes</Revisions> 
      <ForeignLanguageTranslations>Yes</ForeignLanguageTranslations> 
      <NumberOfEditions>This and Subsequent Editions</NumberOfEditions> 
      <PromotionalUse>Right to Display in context Project/Title - Print</PromotionalUse> 
      <Derivatives>Yes</Derivatives> 
      <DerivativeSubcategory>Abridgements</DerivativeSubcategory> 
      <DerivativeSubcategory>Adaptations</DerivativeSubcategory> 
      <DerivativeSubcategory>Brief Editions</DerivativeSubcategory> 
      <AllMedia>Yes</AllMedia> 
      <AllMediaQuantity>AllMediaQuantity3</AllMediaQuantity> 
      <Print>Yes</Print> 
      <PrintQuantity>PrintQuantity3</PrintQuantity> 
      <Digital>Yes</Digital> 
      <DigitalQuantity>DigitalQuantity3</DigitalQuantity> 
      <WorldRights>Yes</WorldRights> 
      <WorldRightsExcludingNAmerica>Yes</WorldRightsExcludingNAmerica> 
      <NonWorldRights>Yes</NonWorldRights> 
      <OtherTerritories>OtherTerritories3</OtherTerritories> 
      <AllLanguages>Yes</AllLanguages> 
      <OtherLanguages>OtherLanguages3</OtherLanguages> 
      <RightsRestrictions>RightsRestrictions3</RightsRestrictions> 
      <GeneralComments>GeneralComments3</GeneralComments> 
      <PermissionCleared>Yes</PermissionCleared> 
      <TitleReferences> 
      <TitleRef ClientID="ClientID7" /> 
      <TitleRef ClientID="ClientID8" /> 
      <TitleRef ClientID="ClientID9" /> 
      </TitleReferences> 
     </Asset> 
     </AssetList> 
    </Project> 
    </RequestBody> 
</CreateProjectRequest> 

如果有人能解决这个问题,我会非常感激!

+0

您是否试图以其他方式攻击此问题,即_with_ SSL验证?我的意思是使用权限包CURLOPT_CAINFO。 –

+0

这可能是一个选项。将不得不明天与我的雇主说话,看看他能否得到一个。不过,我想成为最后的选择。 –

+0

实际上,CA软件包可以自由下载,它只是来自可签署和分发SSL证书(例如VeriSign)的可信组织的证书颁发机构(CA)证书包。在网页浏览过程中,浏览器正在做这样的检查(这些CA证书已经内置),在这种情况下,您需要下载CA套件进行检查。如果您可以通过浏览器致电他们的服务,您可以查看该软件包需要哪些CA证书。 –

回答

0

这绝对是在他们的最后产生的错误。如果这是一个curl错误,根据你的代码,这个错误会被前缀为:echo'Error Code('。curl_errno($ ch)。'):'。 curl_error($ CH);

但是,您可能会发送错误的请求?我会为这个短语设置一个捕获,并将原始传出和传入xml记录到日志文件/ db中,以引起他们的注意。

+0

我认为这可能是这种情况,但他们已向我们保证,该请求是正确的,它应该工作。他们也有其他客户使用该服务,并且对他们来说工作正常。我认为与我们和他们沟通存在错误。我将如何去监控和记录传出和传入的通信? –

+0

他们所说的问题是你没有代码来产生错误。在Google上搜索该语句后,我发现它是由.NET应用程序或IIS产生的错误。 (http://salvoz.com/blog/2011/02/18/where-are-the-server-logs/)。我假设你是用PHP编写的,你的商店也没有使用。 我会检查有效的XML返回负载。如果解析xml失败,请使用日期/时间将您的$ data,$ response和$ error(将此定义为:$ error = curl_error($ ch))写入服务器上的平面文本文件。 – kwolfe