18,356
社区成员
发帖
与我相关
我的任务
分享
int SendParamter( char *saleOrder)
{
ns2__MBFRequestHeader header; //定义 header
ns3__ivrQueryDeliveryinfosaleOrderNo saleOrderNo; //
ns3__ivrQueryDeliveryinfoRequestBody body; //定义 body
ns3__ivrQueryDeliveryinfoRequest request; //定义 request
ns3__ivrQueryDeliveryinfodeliveryInfo deliveryInfo; //定义 serviceInfo SOA返回详细信息
ns3__ivrQueryDeliveryinfoResponse response; //定义 response
_ns3__ivrQueryDeliveryinfo soapinput; //定义 soap输入信息
_ns3__ivrQueryDeliveryinfoResponse soapoutput; //定义 soap输出信息
//初始化soap
struct soap soap;
soap_init ( &soap );
const char* server = "http://192.168.1.53:9996/ServiceWeb/mb"; //服务器URL
//给输入变量赋值
header.MBServiceCode = "MBF_IVR_QUERY_DELIVERYINFO"; //-0-
//saleOrderNo = **body.saleOrderNo;
char *low = new char[256];
saleOrderNo.low = saleOrder; //-1-IVR收销售订单号,送至SOA //将传入值赋给传递参数项,两边皆是char *.
//body.saleOrderNo = &saleOrderNo.low; //将char* low的内存地址上字符拷贝给TYPE_SON **
request.MbfHeader = &header;
request.MbfBody = &body;
soapinput.input1 = &request;
//输出项--记录到DBtable
char *deliveryNo = new char[256]; //-4-SOA返回交货单号
//调用Webservice
if(soap_call___ns1__ivrQueryDeliveryinfo(&soap,server,NULL,&soapinput,&soapoutput) == SOAP_OK)
{
//........
int main(int argc, char* argv[])
{
int iThread = 0;
cout<<"输入启动线程数:";
cin>>iThread;
for (int i=0; i<iThread; i++)
{
_beginthreadex(NULL, 0, ReadDatabaseThread, NULL, 0, NULL);
}
while(k<iThread)
{
Sleep(4000);
}
return 0;
}
//soapStub.h
class SOAP_CMAC ns3__ivrQueryDeliveryinfoRequestBody
{
public:
int __sizesaleOrderNo; /* sequence of elements <saleOrderNo> */
ns3__ivrQueryDeliveryinfosaleOrderNo **saleOrderNo; /* optional element of type ns3:ivrQueryDeliveryinfosaleOrderNo */
struct soap *soap; /* transient */
//..........
class SOAP_CMAC ns3__ivrQueryDeliveryinfosaleOrderNo
{
public:
char *low; /* optional element of type xsd:string */
struct soap *soap; /* transient */
header.MBServiceCode = "MBF_IVR_QUERY_DELIVERYINFO";
char *low = new char[256];
strcpy(low,saleOrder);
saleOrderNo.low = low
body.saleOrderNo = (ns3__ivrQueryDeliveryinfosaleOrderNo **)&saleOrderNo; request.MbfHeader = &header;
request.MbfBody = &body;
soapinput.input1 = &request;
|- request {...}
|- MbfBody 0x0090fedc
|- saleOrderNo 0x0090feec
|- 0x004dc348 const ns3__ivrQueryDeliveryinfosaleOrderNo::`vftable'
+ __vfptr 0x0040100f ns3__ivrQueryDeliveryinfosaleOrderNo::soap_type(void)
+ low 0x00401bcc "開y"
+ soap 0x0040106e ns3__ivrQueryDeliveryinfosaleOrderNo::soap_serialize(struct soap *)
int SendParamter( char *saleOrder) {
//......
return 0;
}
int k = 0;
unsigned int __stdcall ReadDatabaseThread(void *param)
{
for (int i=0; i<10; i++)
{
SendParamter("200004294");
}
k++;
return 0;
}
int main(int argc, char* argv[])
{
int iThread = 0;
cout<<"输入启动线程数:";
cin>>iThread;
for (int i=0; i<iThread; i++)
{
_beginthreadex(NULL, 0, ReadDatabaseThread, NULL, 0, NULL);
}
while(k<iThread)
{
Sleep(4000);
}
return 0;
}