【问题标题】:WSDL imported with C++ Builder Wizard (C++ Builder Xe6 Pro)使用 C++ Builder 向导 (C++ Builder Xe6 Pro) 导入的 WSDL
【发布时间】:2014-08-28 09:03:39
【问题描述】:

在 c++ Builder (XE6 Pro) 中使用 wsdl 导入器向导我很蹩脚 但最终设法正确导入 EBAY WSDL:

http://developer.ebay.com/webservices/latest/ebaySvc.wsdl

我可以成功运行简单的调用,但是在尝试设置(或获取)时出现问题 枚举值。 在这一点上,我在编译后遇到了漂亮的访问冲突。 相关代码:

void __fastcall TEbay::IndexBClick(TObject *Sender)
{

CallName="GetMyeBaySelling";
UnicodeString PUrl =  MakeLink();
_di_eBayAPIInterface EbayCall = GeteBayAPIInterface(false,PUrl,HTP1);

CustomSecurityHeaderType *HDR = new RequesterCredentials;

HDR->eBayAuthToken=AuthToken;
HDR->Credentials = new UserIdPasswordType();
HDR->Credentials->AppId=AppId;
HDR->Credentials->DevId=DevId;
HDR->Credentials->AuthCert=CertId;
_di_ISOAPHeaders headers = EbayCall;
HTP1->SOAPHeaders->Send(HDR);
HTP1->SOAPHeaders->SetOwnsSentHeaders(True);

//GeteBayOfficialTimeRequest TR =  new GeteBayOfficialTimeRequestType();
GetMyeBaySellingRequest *TR = new GetMyeBaySellingRequest();
GetMyeBaySellingResponse *ER =new GetMyeBaySellingResponse();
//ShowMessage(PUrl);
TR->Version=Version;
 TR->ErrorLanguage="en_GB";
   // This one raises error
 TR->SoldList->OrderStatusFilter=OrderStatusFilterCodeType::All;
 ShowMessage("2");

ER = EbayCall->GetMyeBaySelling(TR);
TDateTime ACK = ER->Timestamp->AsDateTime;
 ShowMessage(UnicodeString("ODP:")+ACK);
// EbayCall->GeteBayOfficialTime(ER);

delete TR;
delete ER;
delete HDR;
}

当我尝试设置 OrderStatusFilter 或任何枚举值时,就会发生违规。

声明:(ebasvc.h):

enum class OrderStatusFilterCodeType   /* "urn:ebay:apis:eBLBaseComponents"[GblSmpl] */
{
 All,
 AwaitingPayment,
 AwaitingShipment,
 PaidAndShipped,
 CustomCode
};

class OrderStatusFilterCodeType_TypeInfoHolder : public TObject {
  OrderStatusFilterCodeType __instanceType;
public:
__published:
  __property OrderStatusFilterCodeType __propType = { read=__instanceType };
};

我已经被这个气疯了,有人可以帮我运行这个 $#&^#$&^ 吗??

最好的问候

【问题讨论】:

    标签: c++ web-services wsdl c++builder ebay-api


    【解决方案1】:
    TR->SoldList->OrderStatusFilter=OrderStatusFilterCodeType::All;
    

    看起来您正在尝试为 SoldList 对象上的属性分配值,但我看不到您在哪里创建了该对象。请尝试以下操作。

    TR->SoldList = new ItemListCustomizationType();
    TR->SoldList->OrderStatusFilter=OrderStatusFilterCodeType::All;
    

    【讨论】:

    • 是的!你太棒了 :) 我错过了 SoldList 是 ItemListCustomizationType 对象。我试图初始化 ItemListCustomizationType “独立”,但它没有完成这项工作。现在它就像一个伤害。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-19
    • 1970-01-01
    • 2014-07-08
    相关资源
    最近更新 更多