C++调 webservice 出现 HTTP/1.1.500.Internal.Server.Error

笑对人生 2010-04-08 05:41:54
代码如下。 困扰好几天了。 有经验的 帮看看吧



ISoapSerializerPtr Serializer;
ISoapReaderPtr Reader;
ISoapConnectorPtr Connector;

CoInitialize( NULL );
// Connect to the service.
HRESULT hr = Connector.CreateInstance(__uuidof(HttpConnector));
if (hr == S_FALSE)
{
return false;
}
//Connector->Property["EndPointURL"] = "http://61.172.251.26/alldeposit/service?operation=newDepositCard";
Connector->Property["EndPointURL"] = "http://61.172.251.26:80/alldeposit/service";
Connector->Connect();

// Begin message
//Connector->Property["SoapAction"] = "http://tempuri.org/";
//Connector->Property["SoapAction"]= "urn:SOAPService";

Connector->Property["SoapAction"] = "http://ga.trimps.org/sendAlert";
Connector->BeginMessage();

// Create the SoapSerializer
Serializer.CreateInstance(__uuidof(SoapSerializer));

// Connect the serializer to the input stream of the connector
Serializer->Init(_variant_t((IUnknown*)Connector->InputStream));

// Build the SOAP Message
Serializer->startEnvelope("soap","","UTF-16");
Serializer->startBody("");
//Serializer->startElement("sendAlert","http://ga.trimps.org/","","");


hr = Serializer->startElement("areaId","","","tns");
hr = Serializer->writeString(SysAllocString(L"1"));
hr = Serializer->endElement();

hr = Serializer->startElement("cardNum","","","tns");
hr = Serializer->writeString(SysAllocString(L"489915650000041"));
hr = Serializer->endElement();

hr = Serializer->startElement("channelId","","","tns");
hr = Serializer->writeString(SysAllocString(L"60"));
hr = Serializer->endElement();

hr = Serializer->startElement("createtime","","","tns");
hr = Serializer->writeString(SysAllocString(L"2009-06-21 15:59:59"));
hr = Serializer->endElement();

hr = Serializer->startElement("dealerprice","","","tns");
hr = Serializer->writeString(SysAllocString(L"1"));
hr = Serializer->endElement();

hr = Serializer->startElement("depDesType","","","tns");
hr = Serializer->writeString(SysAllocString(L"2"));
hr = Serializer->endElement();

hr = Serializer->startElement("depFrom","","","tns");
hr = Serializer->writeString(SysAllocString(L"sanmenxia"));
hr = Serializer->endElement();

hr = Serializer->startElement("depSiteType","","","tns");
hr = Serializer->writeString(SysAllocString(L"1"));
hr = Serializer->endElement();

hr = Serializer->startElement("depSrcId","","","tns");
hr = Serializer->writeString(SysAllocString(L"0"));
hr = Serializer->endElement();

hr = Serializer->startElement("depSrcType","","","tns");
hr = Serializer->writeString(SysAllocString(L"20"));
hr = Serializer->endElement();

hr = Serializer->startElement("depTime","","","tns");
hr = Serializer->writeString(SysAllocString(L"2009-06-21 15:59:59"));
hr = Serializer->endElement();

hr = Serializer->startElement("depValue","","","tns");
hr = Serializer->writeString(SysAllocString(L"1"));
hr = Serializer->endElement();

hr = Serializer->startElement("groupId","","","tns");
hr = Serializer->writeString(SysAllocString(L"1"));
hr = Serializer->endElement();

hr = Serializer->startElement("hostId","","","tns");
hr = Serializer->writeString(SysAllocString(L"1"));
hr = Serializer->endElement();

hr = Serializer->startElement("icpId","","","tns");
hr = Serializer->writeString(SysAllocString(L"1"));
hr = Serializer->endElement();

hr = Serializer->startElement("inRate","","","tns");
hr = Serializer->writeString(SysAllocString(L"1"));
hr = Serializer->endElement();

hr = Serializer->startElement("inRateCode","","","tns");
hr = Serializer->writeString(SysAllocString(L"0"));
hr = Serializer->endElement();

hr = Serializer->startElement("inReduceCredit","","","tns");
hr = Serializer->writeString(SysAllocString(L"0"));
hr = Serializer->endElement();

hr = Serializer->startElement("inReduceCreditCode","","","tns");
hr = Serializer->writeString(SysAllocString(L"0"));
hr = Serializer->endElement();

hr = Serializer->startElement("orderId","","","tns");
hr = Serializer->writeString(SysAllocString(L"00107902108856161324265293000202"));
hr = Serializer->endElement();

hr = Serializer->startElement("periodFlag","","","tns");
hr = Serializer->writeString(SysAllocString(L"1"));
hr = Serializer->endElement();

hr = Serializer->startElement("present_info","","","tns");
hr = Serializer->writeString(SysAllocString(L"1"));
hr = Serializer->endElement();

hr = Serializer->startElement("ptId","","","tns");
hr = Serializer->writeString(SysAllocString(L"shixitest"));
hr = Serializer->endElement();

hr = Serializer->startElement("reserveInt","","","tns");
hr = Serializer->writeString(SysAllocString(L"1"));
hr = Serializer->endElement();

hr = Serializer->startElement("retailPrice","","","tns");
hr = Serializer->writeString(SysAllocString(L"1"));
hr = Serializer->endElement();

hr = Serializer->startElement("sdId","","","tns");
hr = Serializer->writeString(SysAllocString(L"0"));
hr = Serializer->endElement();

hr = Serializer->startElement("servId","","","tns");
hr = Serializer->writeString(SysAllocString(L"1"));
hr = Serializer->endElement();

hr = Serializer->startElement("unlocktime","","","tns");
hr = Serializer->writeString(SysAllocString(L"2009-06-21 15:59:59"));
hr = Serializer->endElement();

hr = Serializer->startElement("userId","","","tns");
hr = Serializer->writeString(SysAllocString(L"0"));
hr = Serializer->endElement();

hr = Serializer->startElement("userIdType","","","tns");
hr = Serializer->writeString(SysAllocString(L"1"));
hr = Serializer->endElement();

Serializer->endBody();
Serializer->endEnvelope();

// Send the message to the web service
Connector->EndMessage();
// Let us read the response
Reader.CreateInstance(__uuidof(SoapReader));
// Connect the reader to the output stream of the connector
bool ret = Reader->Load(_variant_t((IUnknown*)Connector->OutputStream),"");

// Display the result
printf("Answer: %s\n", (const char*)Reader->RPCResult->text);


...全文
602 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
笑对人生 2010-11-04
  • 打赏
  • 举报
回复
顶大大大大大大大大大大大大大大大大
笑对人生 2010-04-09
  • 打赏
  • 举报
回复
大家好。我 这样设置 后发出的请求包是这样的,我截取一段


areaId soap:encodingStyle="xsd:int">1</areaId>
<channelId soap:encodingStyle="xsd:string">60</channelId>
<createtime soap:encodingStyle="xsd:string">2009-06-21 15:59:59</createtime>
<dealerprice soap:encodingStyle="xsd:string">1</dealerprice>
<depDesType soap:encodingStyle="xsd:string">2</depDesType>

我现在想把其中的 soap:encodingStyle 设置成 xsi:type 请问要调用 Serializer
的哪个方法呢?

笑对人生 2010-04-08
  • 打赏
  • 举报
回复
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧