青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

浪跡天涯

唯有努力...
努力....再努力...

gsoap使用心得!

最近換了個(gè)工作環(huán)境,現(xiàn)在在大望路這邊上班,呵,剛上班接到的任務(wù)就是熟悉gsoap!廢話少說(shuō),現(xiàn)在開(kāi)始gSoap學(xué)習(xí)!

gSOAP是一個(gè)夸平臺(tái)的,用于開(kāi)發(fā)Web Service服務(wù)端和客戶端的工具,在WindowsLinuxMAC OSUNIX下使用CC++語(yǔ)言編碼,集合了SSL功能。

下載地址:http://sourceforge.net/projects/gsoap2

官方網(wǎng)站:http://genivia.com/Products/gsoap/index.html

對(duì)于Windows平臺(tái)下開(kāi)發(fā)客戶端,首先下載最新的gsoap_win32_2.7.6c.zip包,具體在以下地址:http://optusnet.dl.sourceforge.net/sourceforge/gsoap2/gsoap_win32_2.7.6c.zip

首先查看gsoap的User's Guide,基本就能對(duì)gsoap有個(gè)全面的了解,通過(guò)閱讀Sample里的例子程序深入。然后搜索網(wǎng)上其它一些文章,比如:
gSOAP簡(jiǎn)單多線程服務(wù)器程序 http://blog.chinaunix.net/u1/55091/showart_430965.html
純c gSoap實(shí)現(xiàn)WebService            http://hi.baidu.com/2sky2sea/blog/item/40ec5555680279c1b745ae9b.html 


接下來(lái)我結(jié)合自己的實(shí)踐與理解,講講VC用gsoap下編寫(xiě)webService和客戶端程序,有不對(duì)的地方還請(qǐng)大家指正,謝謝。
我以網(wǎng)上出現(xiàn)的實(shí)現(xiàn)一個(gè)簡(jiǎn)單的加法函數(shù)為例,講講我在操作過(guò)程中遇到的問(wèn)題。

一 服務(wù)器端
1.首先編寫(xiě) add.h文件:
1//gsoap ns service name: add
2//gsoap ns service namespace: http://localhost/add.wsdl
3//gsoap ns service location: http://localhost
4//gsoap ns service executable: add.cgi
5//gsoap ns service encoding: encoded
6//gsoap ns schema namespace: urn:add
7
8int ns__add( int num1, int num2, int* sum );
9

2.用gsoap/bin目錄下的soapcpp2.exe程序,生成一些文件。可以把soapcpp2.exe拷貝到一add.h目錄下,用cmd執(zhí)行soapcpp2.exe add.h就可以,在這個(gè)目錄下會(huì)自動(dòng)生成許多將來(lái)有用的文件,如add.namap,soapH.h,soapC.cpp,soapClient.cpp,soapServer.cpp等文件。soapcpp2.exe可以帶參數(shù)執(zhí)行,具體執(zhí)行soapcpp2.exe -h查看。

3.新建一個(gè)win32控制臺(tái)工程,加入wsock32.lib庫(kù),將剛才生成的那些文件添加到工程中。然后編寫(xiě)webserver.cpp主程序:
#include "add.h"
#include 
"add.nsmap"

int main(int argc, char* argv[])
{
    
    
int m, s; /* master and slave sockets */
    
struct soap add_soap;
    soap_init(
&add_soap);
    
//soap_set_namespaces(&add_soap, add_namespaces);
    
    
if (argc < 2)
    
{
        printf(
"usage: %s <server_port> \n", argv[0]);
        exit(
1);
    }

    
else
    

        m 
= soap_bind(&add_soap, NULL, atoi(argv[1]), 100);
        
if (m < 0)
        
{
            soap_print_fault(
&add_soap, stderr);
            exit(
-1);
        }

        
        fprintf(stderr, 
"Socket connection successful: master socket = %d\n", m);
        
for ( ; ; )
        

            s 
= soap_accept(&add_soap); 
            
if (s < 0)
            

                soap_print_fault(
&add_soap, stderr);
                exit(
-1);
            }

            fprintf(stderr, 
"Socket connection successful: slave socket = %d\n", s);
            
            soap_serve(
&add_soap);//該句說(shuō)明該server的服務(wù)
            soap_end(&add_soap);
        }

    }

    
return 0;
}

//server端的實(shí)現(xiàn)函數(shù)與add.h中聲明的函數(shù)相同,但是多了一個(gè)當(dāng)前的soap連接的參數(shù)
int ns__add(struct soap *add_soap, int num1, int num2, int *sum)
{
    
*sum = num1 + num2;
    
return 0;
}


4. 編譯這個(gè)程序,會(huì)提示錯(cuò)誤,將gsoap_win32目錄下stdsoap2.cpp,stdsoap2.h文件加入工程,重新編譯如果還有錯(cuò)誤,可能是你將add.h生成的文件添加入工程出錯(cuò)的原因。實(shí)際上在編寫(xiě)server程序時(shí),無(wú)須帶Client的那些文件,還有帶Lib的文件也無(wú)須添加到工程中。再重新編譯應(yīng)該就沒(méi)有問(wèn)題了,啟動(dòng)4567端口,在ie中輸入localhost:4567,如果顯示xml頁(yè)面,說(shuō)明程序已經(jīng)啟動(dòng)。

二 對(duì)應(yīng)的客戶端
1。客戶端程序代碼如下:
#include <stdio.h>
#include 
<stdlib.h>
#include 
"soapH.h"
#include 
"add.nsmap"


int add(const char* server, int num1, int num2, int *sum);

int main(int argc, char **argv) 
{
    
int result = -1;
    
char* server="http://localhost:4567";
    
int num1 = 0;
    
int num2 = 0;
    
int sum = 0;
    
if( argc < 3 )
    
{
        printf(
"usage: %s num1 num2 \n", argv[0]);
        exit(
0);
    }

    
    num1 
= atoi(argv[1]);
    num2 
= atoi(argv[2]);
    
    result 
= add(server, num1, num2, &sum);
    
if (result != 0)
    
{
        printf(
"soap err,errcode = %d\n", result);
    }

    
else
    
{
        printf(
"%d+%d=%d\n", num1, num2, sum );
    }

    
return 0;
}


int add( const char* server, int num1, int num2, int *sum )
{
    
struct soap add_soap;
    
int result = 0;
    soap_init(
&add_soap);
//    soap_set_namespaces(&add_soap, add_namespaces);
    
    
//該函數(shù)是客戶端調(diào)用的主要函數(shù),后面幾個(gè)參數(shù)和add.h中聲明的一樣,前面多了3個(gè)參數(shù),函數(shù)名是接口函數(shù)名ns__add前面加上soap_call_
    soap_call_ns__add( &add_soap, server, "", num1, num2, sum );
    
if(add_soap.error)
    
{
        printf(
"soap error:%d,%s,%s\n", add_soap.error, *soap_faultcode(&add_soap), *soap_faultstring(&add_soap) );
        result 
= add_soap.error;
    }
 
    soap_end(
&add_soap);
    soap_done(
&add_soap);
    
return result;
}

2.客戶端程序既可以新建一個(gè)新的win32控制臺(tái)程序,將剛才生成的nsmap,soapH.h,soapClient.h等文件加入工程,編譯既可。我是直接在原先工程中加入一客戶端代碼,將webserver.cpp文件移除,并且將soapServer.cpp等server端需要的文件移除,將soapClient.cpp等client端需要的cpp添加到工程,編譯既可。
3.啟動(dòng)server程序,F(xiàn)5客戶端程序,經(jīng)測(cè)試正常。

三 遇到的問(wèn)題
1.server端可以編譯成CGI方式執(zhí)行,而并不是綁定到某個(gè)端口,這種方式我沒(méi)有實(shí)踐。
if (argc < 2// no args: assume this is a CGI application 
   
      soap_serve(
&soap); // serve request, one thread, CGI style 
      soap_destroy(&soap); // dealloc C++ data 
      soap_end(&soap); // dealloc data and clean up 
}
2.在編譯服務(wù)器及客戶端程序時(shí)一開(kāi)始對(duì)add.h生成的文件添加到工程,經(jīng)常出現(xiàn)問(wèn)題,需要自己不調(diào)試。特別是鏈接時(shí)段,server/client要與其生成的文件相對(duì)應(yīng),server調(diào)用生成的soapserver.cpp,client調(diào)用生成的soapclient.cpp文件。
3.多線程方式,在windows下建議用pthread_win32庫(kù),這里給出多線程下的例子。
一 gSOAP需要的頭文件:

//gsoap ns service name: calc
//gsoap ns service style: rpc
//gsoap ns service encoding: encoded
//gsoap ns service namespace: http://127.0.0.1:8089/calc.wsdl
//gsoap ns service location: http://127.0.0.1:8089/cal
//gsoap ns schema  namespace:    urn:calc
int ns__add(double a, double b, double *result);
int ns__sub(double a, double b, double *result);
int ns__mul(double a, double b, double *result);
int ns__div(double a, double b, double *result);
int ns__pow(double a, double b, double *result);

二 多線程服務(wù)器關(guān)鍵代碼

#include 
#include  
"calc.nsmap"
#include  
"soapH.h"

/////////////////////////////////////////////////////////////////////////
///宏與全局變量的定義

#define  BACKLOG (100)  
#define  MAX_THR (10)   
#define  MAX_QUEUE (1000)


pthread_mutex_t queue_cs;                        
//隊(duì)列鎖
pthread_cond_t  queue_cv;                          //條件變量
SOAP_SOCKET     queue[MAX_QUEUE];   //數(shù)組隊(duì)列
int                           head =0, tail =0;          //隊(duì)列頭隊(duì)列尾初始化         
//////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////

void *      process_queue(void *);        //線程入口函數(shù)
int         enqueue(SOAP_SOCKET);  //入隊(duì)列函數(shù)
SOAP_SOCKET dequeue(void);         //出隊(duì)列函數(shù)

//////////////////////////////////////////////////////////////////////////
//線程入口函數(shù)
void * process_queue(void * soap)
{
  
struct soap * tsoap = (struct soap *)soap;
  
for(;;)
  
{
        tsoap
->socket = dequeue();
        
if (!soap_valid_socket(tsoap->socket))
       
{
         
break;
        }

        soap_serve(tsoap);
        soap_destroy(tsoap);
        soap_end(tsoap);
  }

  
return NULL;
}


//入隊(duì)列操作
int enqueue(SOAP_SOCKET sock)
{
  
int status = SOAP_OK;
  
int next;
  pthread_mutex_lock(
&queue_cs);
  next 
= tail +1;
  
if (next >= MAX_QUEUE) 
    next 
= 0;
  
if (next == head) 
      status 
= SOAP_EOM;
  
else
  
{
    queue[tail] 
=sock;
    tail 
= next;
  }

  pthread_cond_signal(
&queue_cv);
  pthread_mutex_unlock(
&queue_cs);
  
return status;
}


//出隊(duì)列操作
SOAP_SOCKET dequeue()
{
  SOAP_SOCKET sock;
  pthread_mutex_lock(
&queue_cs);
   
while (head == tail )
   
{
          pthread_cond_wait(
&queue_cv,&queue_cs);
   }

  sock 
= queue[head++];
  
if (head >= MAX_QUEUE)
        
{
    head 
=0;
  }

  pthread_mutex_unlock(
&queue_cs);
  
return sock;
}



//////////////////////////具體服務(wù)方法////////////////////////////////////////
//加法的實(shí)現(xiàn)
int ns__add(struct soap *soap, double a, double b, double *result)
{
      
*result = a + b;
      
return SOAP_OK;
}
 
//減法的實(shí)現(xiàn)
int ns__sub(struct soap *soap, double a, double b, double *result)

     
*result = a - b;
     
return SOAP_OK;
}
 
//乘法的實(shí)現(xiàn)
int ns__mul(struct soap *soap, double a, double b, double *result)

     
*result = a * b;
     
return SOAP_OK;
}
 
//除法的實(shí)現(xiàn)
int ns__div(struct soap *soap, double a, double b, double *result)

   
if (b)
       
*result = a / b;
   
else
  
{
         
char *= (char*)soap_malloc(soap, 1024);
         sprintf(s, 
"Can't">http://tempuri.org/">Can't divide %f by %f", a, b);
         return soap_sender_fault(soap, "Division by zero", s);
  }

  
return SOAP_OK;
}
 
//乘方的實(shí)現(xiàn)
int ns__pow(struct soap *soap, double a, double b, double *result)

  
*result = pow(a, b);
  
if (soap_errno == EDOM) /* soap_errno 和errorno類似, 但是和widnows兼容 */
  

    
char *= (char*)soap_malloc(soap, 1024);
    sprintf(s, 
"Can't take the power of %f to  %f", a, b);
    sprintf(s, 
"Can't">http://tempuri.org/">Can't take power of %f to %f", a, b);
    return soap_sender_fault(soap, "Power function domain error", s);
  }

  
return SOAP_OK;
}
 

//////////////////////////////////////////////////////////////////////////////////////////////////////
//主函數(shù)
int main(int argc,char ** argv)
{
  
struct soap ServerSoap;
     
//初始話運(yùn)行時(shí)環(huán)境
    soap_init(&ServerSoap);
    
//如果沒(méi)有參數(shù),當(dāng)作CGI程序處理
    if (argc <2
    
{       
           
//CGI 風(fēng)格服務(wù)請(qǐng)求,單線程
          soap_serve(&ServerSoap);
          
//清除序列化的類的實(shí)例
         soap_destroy(&ServerSoap);
         
//清除序列化的數(shù)據(jù)
        soap_end(&ServerSoap);     
   }
else
   
{
     
struct soap * soap_thr[MAX_THR];
     pthread_t tid[MAX_THR];
     
int i,port = atoi(argv[1]);
     SOAP_SOCKET m,s;
      
//鎖和條件變量初始化
     pthread_mutex_init(&queue_cs,NULL);
     pthread_cond_init(
&queue_cv,NULL);
     
//綁定服務(wù)端口
    m = soap_bind(&ServerSoap,NULL,port,BACKLOG);
    
//循環(huán)直至服務(wù)套接字合法
    while (!soap_valid_socket(m))
   
{
                fprintf(stderr,
"Bind port error! ");
                m 
= soap_bind(&ServerSoap,NULL,port,BACKLOG);
    }

    fprintf(stderr,
"socket connection successful %d ",m);
                
     
//生成服務(wù)線程
    for(i = 0; i <MAX_THR; i++)

   
{
      soap_thr[i] 
= soap_copy(&ServerSoap);
      fprintf(stderr,
"Starting thread %d ",i);
      pthread_create(
&tid[i],NULL,(void*(*)(void*))process_queue,(void*)soap_thr[i]);
    }

                
    
for(;;)
    
{
      
//接受客戶端的連接
      s = soap_accept(&ServerSoap);
      
if (!soap_valid_socket(s)) 
      
{
        
if (ServerSoap.errnum) 
                                
{
          soap_print_fault(
&ServerSoap,stderr);
          
continue;
        }
else
        
{
          fprintf(stderr,
"Server timed out ");
          
break;
        }

      }

       
//客戶端的IP地址
      fprintf(stderr,"Accepted connection from IP= %d.%d.%d.%d socket = %d ",
                               ((ServerSoap.ip)
>>24)&&0xFF,((ServerSoap.ip)>>16)&0xFF,((ServerSoap.ip)>>8)&0xFF,(ServerSoap.ip)&0xFF,(ServerSoap.socket));
      
//請(qǐng)求的套接字進(jìn)入隊(duì)列,如果隊(duì)列已滿則循環(huán)等待
       while(enqueue(s) == SOAP_EOM)
                Sleep(
1000);
    }

    
//服務(wù)結(jié)束后的清理工作
    for(i = 0; i < MAX_THR; i++)
    
{
      
while (enqueue(SOAP_INVALID_SOCKET) == SOAP_EOM) 
       
{
           Sleep(
1000);
      }

    }

    
for(i=0; i< MAX_THR; i++)
    
{
      fprintf(stderr,
"Waiting for thread %d to terminate ..",i);
      pthread_join(tid[i],NULL);
      fprintf(stderr,
"terminated ");
      soap_done(soap_thr[i]);
      free(soap_thr[i]);
    }

    pthread_mutex_destroy(
&queue_cs);
    pthread_cond_destroy(
&queue_cv);
  }

    
//分離運(yùn)行時(shí)的環(huán)境
  soap_done(&ServerSoap);
  
return 0;
}

posted on 2008-06-19 15:26 浪跡天涯 閱讀(100752) 評(píng)論(79)  編輯 收藏 引用 所屬分類: Lib

評(píng)論

# re: gsoap使用心得! 2008-06-19 15:49 true

有空也試試gsoap,每天上班做地鐵經(jīng)過(guò)大望路:)  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2008-06-19 15:50 true

順便問(wèn)一下:貴公司干啥滴?  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2008-10-11 07:52 zyx

client端是java的webservice(vwindows),server端是goap的server(solaris)可以么?  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2008-10-13 09:15 浪跡天涯

可以的,你可以參考我的另一篇文章:
<<webservice的互操作問(wèn)題>>講得就是跨語(yǔ)言之間的webservice操作!  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2008-11-03 10:42 風(fēng)云

addtest error LNK2005: "int __cdecl soap_serve(struct soap *)" (?soap_serve@@$$FYAHPAUsoap@@@Z) already defined in soapServer.obj
addtest error LNK2005: "int __cdecl soap_serve(struct soap *)" (?soap_serve@@YAHPAUsoap@@@Z) already defined in soapServer.obj
addtest error LNK2005: "int __cdecl soap_serve_ns__add(struct soap *)" (?soap_serve_ns__add@@$$FYAHPAUsoap@@@Z) already defined in soapServer.obj
addtest error LNK2005: "int __cdecl soap_serve_ns__add(struct soap *)" (?soap_serve_ns__add@@YAHPAUsoap@@@Z) already defined in soapServer.obj
addtest error LNK2005: "int __cdecl soap_serve_request(struct soap *)" (?soap_serve_request@@$$FYAHPAUsoap@@@Z) already defined in soapServer.obj
addtest error LNK2005: "int __cdecl soap_serve_request(struct soap *)" (?soap_serve_request@@YAHPAUsoap@@@Z) already defined in soapServer.obj
addtest fatal error LNK1169: one or more multiply defined symbols found
你好樓主,出現(xiàn)這樣的問(wèn)題怎么解決,我試用了很多方法都解決不掉謝謝

  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2008-11-03 10:48 浪跡天涯

看出錯(cuò)信息好像是你把soapServerLib.cpp等文件也添加到了工程中,產(chǎn)生重復(fù)定義的錯(cuò)誤。你用gsoap生成服務(wù)器端 客戶端的文件后 并不是把生成的所有文件都拷到工程中,而只是拷貝你所需要的文件到工程目錄里,你試試。  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2008-11-03 13:45 風(fēng)云

@浪跡天涯
謝謝樓主,問(wèn)題問(wèn)題已經(jīng)解決  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2008-12-10 10:52 start gsoap

@風(fēng)云
請(qǐng)問(wèn)樓主具體哪些文件是server端需要的,我編譯時(shí)提示的錯(cuò)誤全是*** 未定義  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2008-12-10 14:39 浪跡天涯

soapC.cpp soapH.h soapServer.cpp soapStub.h stdsoap2.cpp stdsoap2.h(stl support)這些文件  回復(fù)  更多評(píng)論   

# re: gsoap使用心得![未登錄](méi) 2008-12-19 16:16 kerry

Linking...
soapServer.obj : error LNK2001: unresolved external symbol "int __cdecl ns__add(struct soap *,int,int,int *)" (?ns__add@@YAHPAUsoap@@HHPAH@Z)
stdsoap2.obj : error LNK2001: unresolved external symbol _send@16
stdsoap2.obj : error LNK2001: unresolved external symbol _WSAGetLastError@0
stdsoap2.obj : error LNK2001: unresolved external symbol _select@20
stdsoap2.obj : error LNK2001: unresolved external symbol _recv@16
stdsoap2.obj : error LNK2001: unresolved external symbol _WSACleanup@0
stdsoap2.obj : error LNK2001: unresolved external symbol _gethostbyname@4
stdsoap2.obj : error LNK2001: unresolved external symbol _inet_addr@4
stdsoap2.obj : error LNK2001: unresolved external symbol _getsockopt@20
stdsoap2.obj : error LNK2001: unresolved external symbol _connect@12
stdsoap2.obj : error LNK2001: unresolved external symbol _ioctlsocket@12
stdsoap2.obj : error LNK2001: unresolved external symbol _htons@4
stdsoap2.obj : error LNK2001: unresolved external symbol _setsockopt@20
stdsoap2.obj : error LNK2001: unresolved external symbol _socket@12
stdsoap2.obj : error LNK2001: unresolved external symbol _WSAStartup@8
stdsoap2.obj : error LNK2001: unresolved external symbol _listen@8
stdsoap2.obj : error LNK2001: unresolved external symbol _bind@12
stdsoap2.obj : error LNK2001: unresolved external symbol _htonl@4
stdsoap2.obj : error LNK2001: unresolved external symbol ___WSAFDIsSet@8
stdsoap2.obj : error LNK2001: unresolved external symbol _accept@12
stdsoap2.obj : error LNK2001: unresolved external symbol _ntohs@4
stdsoap2.obj : error LNK2001: unresolved external symbol _ntohl@4
stdsoap2.obj : error LNK2001: unresolved external symbol _closesocket@4
stdsoap2.obj : error LNK2001: unresolved external symbol _shutdown@8

這是怎么回事啊?
我只在工程里添加了add.h,soapC.cpp,soapClient.cpp,soapH.h,soapServer.cpp,soapStub.h,stdsoap2.cpp,stdsoap2.h這些文件
該怎么解決呢?  回復(fù)  更多評(píng)論   

# re: gsoap使用心得![未登錄](méi) 2008-12-19 16:38 kerry

上個(gè)問(wèn)題我解決了 但是我運(yùn)行是 cmd 卻出現(xiàn)
usage: F:\KERRY\DATA\VC\WEBSERIVCE\Sample2\Debug\Sample2.exe <server_port>

F:\KERRY\DATA\VC\WEBSERIVCE\Sample2 是我工程目錄 這個(gè)怎么解決啊?  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2008-12-24 10:51 spyy26224574

@kerry
請(qǐng)問(wèn)Kerry你是怎么解決未定義問(wèn)題的?分享一下可以嗎?  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2008-12-24 18:20 浪跡天涯

@spyy26224574
include winsock2.h 以及l(fā)ib  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2009-04-06 02:10

能否給各支持SSL的例子
我調(diào)用web service始終不能返回正確值,我的web service是HTTPS的。
  回復(fù)  更多評(píng)論   

# re: gsoap使用心得![未登錄](méi) 2009-04-08 13:22 浪跡天涯

@張
gsoap guide文檔上有openssl的例子,你可以參考參考。  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2009-05-04 11:43 木木

我在編譯的過(guò)程中發(fā)現(xiàn),
d:\my documents\visual studio 2008\projects\ltttt\ltttt\mywebservice.h(44) : fatal error C1083: 無(wú)法打開(kāi)類型庫(kù)文件:“d:\my documents\visual studio 2008\projects\ltttt\ltttt\stlvector.h”: 加載類型庫(kù)/DLL 時(shí)出錯(cuò)。

mywebservice.h就是根據(jù).wsdl得到那個(gè)頭文件。我已經(jīng)將stlvector.h文件添加到當(dāng)前工程了。  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2009-05-06 14:35 學(xué)習(xí)男

樓主,能留個(gè)QQ交流下嗎?  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2009-05-07 10:22 浪跡天涯

很少用QQ,你可以加我msn,謝謝  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2009-06-01 13:07 rootpang

樓主,你的msn是多少??我遇到一個(gè)問(wèn)題想和你交流一下,就是gsoap使用c++ namespace方面的問(wèn)題。我不用命名空間時(shí),可以編譯,當(dāng)在soapcpp2 -n add.h時(shí)編譯不過(guò)了!!!!  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2009-06-01 17:20 學(xué)習(xí)

找不到add.nsmap,怎么辦啊,沒(méi)有生成這個(gè)文件啊  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2009-06-01 18:37 學(xué)習(xí)

很汗,add.h文件中,我如果用ns__,就會(huì)產(chǎn)生一個(gè)warming,然后就油add.nsmap文件生成,如果改成ns_,就沒(méi)有warming了,但add.nsmap文件就不會(huì)生成了,百思不得其解  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2009-06-23 18:12 風(fēng)火冰

oapServer.obj : error LNK2001: unresolved external symbol "int __cdecl ns1__magic(struct soap *,int,class matrix * &)" (?ns1__magic@@YAHPAUsoap@@HAAPAVmatrix@@@Z)
Debug/soapWeb.exe : fatal error LNK1120: 1 unresolved externals  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2009-07-08 09:56 過(guò)客

請(qǐng)問(wèn)除了可以用C/C++開(kāi)發(fā)webservice外,使用gsoap還有哪些優(yōu)點(diǎn),比如效率上,比起.net開(kāi)發(fā)的如何  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2009-07-19 21:42 過(guò)客

我在MFC工程中調(diào)用,初始化struct soap ServerSoap
soap_init(&ServerSoap);

刪除soap_destroy(&ServerSoap);
soap_end(&ServerSoap);
soap_done(&ServerSoap);

會(huì)出現(xiàn)內(nèi)存泄漏的問(wèn)題,有沒(méi)有人知道如何解決呢  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2009-10-01 03:01 laimi

沒(méi)用過(guò),先看看效果  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2010-01-14 10:24 xiaohei

我用VC6.0 建立的工程,但編譯出現(xiàn)這個(gè),
fatal error C1083: Cannot open include file: 'stdsoap2.h': No such file or directory
就是我的工程目錄中沒(méi)有'stdsoap2.h','stdsoap2.cpp'文件,怎么辦?
  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2010-01-14 10:41 浪跡天涯

找到這兩個(gè)文件添加入工程即可。  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2010-01-14 17:23 xiaohei

謝謝樓主。現(xiàn)在出現(xiàn)別外一個(gè)問(wèn)題:我在C#的添加web引用的URL中輸入http://localhost:4567/add?wsdl,但總是得到HTTP GET method not implemented的錯(cuò)誤,應(yīng)該怎么辦?  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2010-01-14 17:25 xiaohei

我是依照你上面的方法建立的服務(wù)。。。。  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2010-01-14 17:38 浪跡天涯

這個(gè)url過(guò)來(lái)的請(qǐng)求時(shí)http_get,你必須自己實(shí)現(xiàn)http_get方法,返回wsdl的真正內(nèi)容即可。  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2010-01-15 10:35 xiaohei

http_get里面應(yīng)該怎么寫(xiě),返回值是什么?第一個(gè)例子,怎么才能讓C#或者java或者C++的ISoapSerializerPtr 寫(xiě)的客戶端去調(diào)用呢?
請(qǐng)樓主賜教....  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2010-01-15 11:56 xiaohei

我用
int http_get(struct soap *soap)
{
FILE* fd = fopen("add.wsdl", "rb"); // open WSDL file to copy
if (!fd)
return 404; // return HTTP not found error
soap->http_content = "text/xml"; // HTTP header with text/xml content
soap_response(soap, SOAP_FILE);
for (;;)
{
int r = fread(soap->tmpbuf, 1, sizeof(soap->tmpbuf), fd);
if (!r)
break;
if (soap_send_raw(soap, soap->tmpbuf, r))
break; // can't send, but little we can do about that
}

fclose(fd);
soap_end_send(soap);
return SOAP_OK;
}
將整個(gè)文檔的內(nèi)容發(fā)過(guò),在瀏覽器可以看到整個(gè)配置文件的內(nèi)容,但在C#中添加了引用,調(diào)用Add接口失敗。  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2010-03-22 11:23 淘寶返利店

C 我永遠(yuǎn)的痛  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2011-03-08 16:58 andywangcn

@風(fēng)云
無(wú)法解析的外部符號(hào) "int __cdecl ns__add(struct soap *,int,int,int *)" (?ns__add@@YAHPAUsoap@@HHPAH@Z),該符號(hào)在函數(shù) "int __cdecl soap_serve_ns__add(struct soap *)" (?soap_serve_ns__add@@YAHPAUsoap@@@Z) 中被引用
請(qǐng)問(wèn)這個(gè)問(wèn)題該怎么解決啊?
我的郵箱andywangcn@163.com,謝謝啦  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2011-04-28 11:57 asdfsadas

@kerry
添加win32.lib  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2011-05-10 19:15 wwb

@xiaohei
我也同樣的問(wèn)題,不知道哪位大俠解決過(guò)此類問(wèn)題  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2011-05-16 11:48 Chad

編譯錯(cuò)誤
fatal error C1083: Cannot open type library file: 'e:\download\gsoap_2.8.1\gsoap-2.8\gsoap\import\stlvector.h': Error loading type library/DLL.
這個(gè)問(wèn)題是什么原因造成的?有哪位大俠遇到過(guò)?  回復(fù)  更多評(píng)論   

# re: gsoap使用心得![未登錄](méi) 2011-07-05 15:51 young

編譯通過(guò),連接時(shí)會(huì)同現(xiàn)這些,這是什么原因啊!
stdsoap2.obj : error LNK2001: unresolved external symbol _soap_getheader
stdsoap2.obj : error LNK2001: unresolved external symbol _soap_faultcode
stdsoap2.obj : error LNK2001: unresolved external symbol _soap_faultsubcode
stdsoap2.obj : error LNK2001: unresolved external symbol _soap_faultstring
stdsoap2.obj : error LNK2001: unresolved external symbol _soap_putfault
stdsoap2.obj : error LNK2001: unresolved external symbol _soap_putheader
stdsoap2.obj : error LNK2001: unresolved external symbol _soap_serializefault
stdsoap2.obj : error LNK2001: unresolved external symbol _soap_serializeheader
stdsoap2.obj : error LNK2001: unresolved external symbol _soap_getfault
stdsoap2.obj : error LNK2001: unresolved external symbol _soap_faultdetail
Debug/soap_send.exe : fatal error LNK1120: 10 unresolved externals  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2011-07-20 00:46 MyChip

好文  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2011-08-26 12:22 追逐的腳步|ImChaser

拜訪,學(xué)習(xí)  回復(fù)  更多評(píng)論   

# re: wsdl發(fā)布問(wèn)題 2012-02-08 14:39 lxwei

我使用http_get方法能夠在http://localhost:8080/hello?wsdl上顯示具體的wsdl,但是使用c#或javascript的客戶端引用上述網(wǎng)址卻不能調(diào)用gsoap服務(wù)器的方法,請(qǐng)問(wèn)樓主有沒(méi)有解決方法?萬(wàn)分感謝!  回復(fù)  更多評(píng)論   

# re: gsoap使用心得![未登錄](méi) 2012-02-08 15:03 浪跡天涯

@lxwei
你用c#寫(xiě)一個(gè)相同的服務(wù),然后比較兩個(gè)wsdl文件差異。我覺(jué)得這兩個(gè)wsdl是有差異的,才導(dǎo)致調(diào)用失敗。用http_get返回c#服務(wù)生成的wsdl試試。  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2012-02-20 10:44 man

樓主,您好,我是初學(xué)者,想請(qǐng)教下若是網(wǎng)站上沒(méi)有wsdl文檔或xsd文件時(shí),該如何利用gsoap調(diào)用webservice服務(wù)呢?  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2012-08-01 21:51

我想用c++調(diào)用java寫(xiě)好的webservice該怎樣用?
現(xiàn)在我是直接添加WEB引用,會(huì)出現(xiàn)如下警告與錯(cuò)誤:
警告 1 warning LNK4227: 元數(shù)據(jù)操作警告(00131189): 重復(fù)方法中的參數(shù)信息不一致(方法: getMessage;類型: WebTest001.getTaskAppCompletedEventArgs): (0x0800003a)。 AssemblyInfo.obj
錯(cuò)誤 5 error LNK2022: 元數(shù)據(jù)操作失敗(80131195): 自定義屬性不一致: (0x0c000043)。 AssemblyInfo.obj

這個(gè)該怎么解決?  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2012-08-07 09:15 zyg

@kerry
少帶參數(shù)了,命令行下應(yīng)該輸入Sample2.exe 4567   回復(fù)  更多評(píng)論   

# re: gsoap使用心得![未登錄](méi) 2012-09-26 17:55 jacky

我想把server端的程序變成可以同時(shí)支持ipv4和ipv6, 請(qǐng)問(wèn)怎么做?  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2012-10-09 17:21 sniff

@lxwei
我用gsoap做客戶端,程序沒(méi)問(wèn)題,把服務(wù)器端運(yùn)行起來(lái),在ie輸入http://localhost:82之類的,會(huì)展示整個(gè)wsdl,但是這個(gè)wsdl內(nèi)部有add,sub這些接口,怎么調(diào)用啊

在ie里面輸入時(shí),服務(wù)端,自己已經(jīng)實(shí)現(xiàn)了http_get,但是獲取的是整個(gè)wsdl文件,我想調(diào)用他里面的一個(gè),比如add接口  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2012-11-12 16:33 xh

第二步,把a(bǔ)dd.h和soapcpp2.exe放在同一個(gè)目錄下 怎么不能生成文件 能詳細(xì)一點(diǎn)嗎  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2012-11-12 16:34 xh

可以把soapcpp2.exe拷貝到一add.h目錄下 什么意思 有解釋的嗎?
  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2012-12-27 15:11 zhujinhu

我調(diào)用webservice傳入的參數(shù)怎么都是空?
struct soap clientSOAP;

string s1 = "zhujinhu";
string s2 = "";
soap_init(&clientSOAP);
_tempuri__HelloWorld hello;
hello.name=&s1;
_tempuri__HelloWorldResponse helloResponse;
if(soap_call___tempuri__HelloWorld(&clientSOAP, NULL, NULL, &hello, &helloResponse) == SOAP_OK)
{
cout<<helloResponse.HelloWorldResult->c_str()<<endl;
}
else
{
printf("Error\n");
}

soap_destroy(&clientSOAP);

soap_end(&clientSOAP);

soap_done(&clientSOAP);

return 0;  回復(fù)  更多評(píng)論   

# re: gsoap使用心得![未登錄](méi) 2013-01-16 15:49 浪跡天涯

請(qǐng)問(wèn)下我客戶端調(diào)用服務(wù)端方法返回-1是為什么???
printf("soap error:%d,%s,%s\n", add_soap.error, *soap_faultcode(&add_soap), *soap_faultstring(&add_soap) );
獲取到的錯(cuò)誤信息都為Null  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2013-01-16 17:32 luguo

樓主我想請(qǐng)問(wèn)你一下,我現(xiàn)在需要調(diào)用2個(gè)WebServers,我照你的方法生成了2個(gè)客戶端。2個(gè)客戶端分開(kāi)編譯正常運(yùn)行。但是我想把2個(gè)客戶端合為一個(gè)客戶端,編譯的時(shí)候就報(bào)函數(shù)重復(fù)定義了,有沒(méi)有什么解決的辦法?  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2013-02-02 16:32 zhao

@學(xué)習(xí)
你沒(méi)有用cmd執(zhí)行soapcpp2.exe add.h
這個(gè)日志是一個(gè)真正能完整運(yùn)行的示例。  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2013-02-02 16:33 zhao

@xh
就是手動(dòng)把這個(gè)exe文件拷到add.h所在目錄啊,這樣就可以直接“用cmd執(zhí)行soapcpp2.exe add.h”生成所需要的其它文件了。  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2013-02-18 11:36 quan

樓主我想請(qǐng)問(wèn)下為什么我用cmd執(zhí)行soapcpp2.exe add.h一個(gè)文件都沒(méi)有生成啊,兩個(gè)文件已經(jīng)放在同一個(gè)目錄下面了,cmd命令行里面提示save那些文件了,可是為什么文件都沒(méi)生成呢?  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2013-02-18 11:39 quan

能給個(gè)qq什么的聯(lián)系方式嗎?有問(wèn)題請(qǐng)教,這上面好不方便啊
  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2013-02-27 15:23 gsoap

連接出現(xiàn)一下錯(cuò)誤
1>Linking...
1>soap.obj : error LNK2019: unresolved external symbol "int __cdecl soap_serve(struct soap *)" (?soap_serve@@YAHPAUsoap@@@Z) referenced in function _main
1>stdsoap2.obj : error LNK2019: unresolved external symbol _soap_faultcode referenced in function _http_response
1>stdsoap2.obj : error LNK2019: unresolved external symbol _soap_getheader referenced in function _soap_recv_header
1>stdsoap2.obj : error LNK2019: unresolved external symbol _soap_faultsubcode referenced in function _soap_set_fault
1>stdsoap2.obj : error LNK2019: unresolved external symbol _soap_faultstring referenced in function _soap_set_fault
1>stdsoap2.obj : error LNK2019: unresolved external symbol _soap_putfault referenced in function _soap_send_fault
1>stdsoap2.obj : error LNK2019: unresolved external symbol _soap_putheader referenced in function _soap_send_fault
1>stdsoap2.obj : error LNK2019: unresolved external symbol _soap_serializefault referenced in function _soap_send_fault
1>stdsoap2.obj : error LNK2019: unresolved external symbol _soap_serializeheader referenced in function _soap_send_fault
1>stdsoap2.obj : error LNK2019: unresolved external symbol _soap_getfault referenced in function _soap_recv_fault
1>stdsoap2.obj : error LNK2019: unresolved external symbol _soap_faultdetail referenced in function _soap_set_error
1>stdsoap2.obj : error LNK2019: unresolved external symbol _soap_check_faultdetail referenced in function _soap_print_fault
1>stdsoap2.obj : error LNK2019: unresolved external symbol _soap_check_faultsubcode referenced in function _soap_print_fault  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2013-03-12 15:08 nemo

SSL_ERROR_SSL
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

樓主,這樣的錯(cuò)誤時(shí)什么意思啊  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2013-06-06 14:22 額c++

請(qǐng)問(wèn)樓主,我的webserver.cpp運(yùn)行后若有client請(qǐng)求,則能正確返回相加結(jié)果,若無(wú)client請(qǐng)求,過(guò)大概5秒他就自動(dòng)關(guān)閉了,請(qǐng)問(wèn)是怎么回事呢  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2013-07-31 09:32 晨星

POST / HTTP/1.1
Host: 16.2.1.123:4567
User-Agent: gSOAP/2.8
Content-Type: text/xml; charset=utf-8
Content-Length: 459
Connection: close
SOAPAction: ""
這樣的信息可以在程序里什么地方控制生成的?  回復(fù)  更多評(píng)論   

# re: gsoap使用心得![未登錄](méi) 2013-09-25 10:28 123

夸平臺(tái)?

怎么 夸??? 發(fā)嘉獎(jiǎng)令?  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2013-11-08 17:45 Homepage

win32.lib 怎么得到? @asdfsadas
  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2013-11-08 19:29 Homepage

@andywangcn
解決了嗎?
homepage2010@qq.com  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2014-03-31 23:24 fuck gsoap

'stlvector.h': 加載類型庫(kù)/DLL 時(shí)出錯(cuò)。  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2014-04-04 09:52 zss123

如何把soapcpp2.exe拷貝到一add.h目錄下并執(zhí)行?  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2014-05-07 09:30 迷茫的gsoap

@風(fēng)火冰
請(qǐng)問(wèn)你問(wèn)題怎么解決的?我也遇到相同的問(wèn)題了 謝謝!  回復(fù)  更多評(píng)論   

# re: gsoap使用心得![未登錄](méi) 2014-05-09 19:43 稻草人

樓主能講下,怎么建立多個(gè)函數(shù)的web  回復(fù)  更多評(píng)論   

# re: gsoap使用心得![未登錄](méi) 2014-05-12 09:24 稻草人

如何利用gsoap來(lái)創(chuàng)建一個(gè)客戶端,去控制兩個(gè)不在同一臺(tái)主機(jī)上的服務(wù)端程序  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2014-06-24 10:13 風(fēng)清

編譯客戶端的時(shí)候出現(xiàn)這樣的錯(cuò)誤提示是怎么回事啊?error C3861: “soap_call_ns__add”: 找不到標(biāo)識(shí)符  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2014-06-24 15:40 風(fēng)清

樓主我想做圖片處理得,能否指導(dǎo)一下呢  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2014-07-02 10:47 wusansan

很不錯(cuò),正在學(xué)習(xí)中!  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2014-07-14 13:53 秦力

添加http_get方法后,導(dǎo)致客戶端調(diào)用add方法失敗的原因是,http_get中調(diào)用soap_end_send(soap)方法,導(dǎo)致調(diào)用add方法時(shí),重復(fù)調(diào)用soap_end_send(soap);方法出錯(cuò)。我把http_get方法添加在webserver.cpp中,出現(xiàn)上述情況,目前還沒(méi)想到把這個(gè)http_get方法添加到哪里,這個(gè)問(wèn)題你解決了嗎? @xiaohei  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2014-07-14 14:09 秦力

找到解決辦法了,在soap_init(&soap); 之后加 soap.fget = http_get; 指定遠(yuǎn)程沒(méi)有調(diào)用webservice方法時(shí)返回的內(nèi)容即可@xiaohei  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2014-07-22 09:23 LC湊熱鬧

利用gsoap開(kāi)發(fā)的Webservice可以用網(wǎng)頁(yè)的形式呈現(xiàn)給用戶使用嗎?  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2015-05-05 18:47 zhtao2015

@andywangcn
請(qǐng)問(wèn)這種無(wú)法解析外部符號(hào)的問(wèn)題你們是怎么解決的?
error LNK2019: 無(wú)法解析的外部符號(hào) ___tan__ModifyAnalyticsModules,該符號(hào)在函數(shù) _soap_serve___tan__ModifyAnalyticsModules 中被引用;


我的郵箱是zhtao2012@163.com

謝謝了!  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2015-05-27 10:40 黑毛

@zhtao2015

服務(wù)端:添加文件(soapC.cpp soapH.h soapServer.cpp soapStub.h stdsoap2.cpp stdsoap2.h(stl support)這些文件)
客戶端:添加文件(soapH.h、soapStub.h、stdsoap2.h、soapC.cpp、soapClient.cpp、stdsoap2.cpp、add.nsmap)

提示缺少哪個(gè)文件,添加哪個(gè),即可。  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2015-09-14 15:53 潘永紅

@kerry
你那個(gè)鏈接錯(cuò)誤是怎么解決的呢  回復(fù)  更多評(píng)論   

# re: gsoap使用心得! 2016-04-26 15:44 無(wú)名氏

_SendRequest start: serverUrl.c_str() http://nnzz.hx2000.com.cn:8822/Aeyeser.asmx
MainServlet.invokews faild: 無(wú)法識(shí)別請(qǐng)求元素 <invokews xmlns='returnid 111111: -199
doCommunicateLogin_CS iResult: 1 樓主,出現(xiàn)這個(gè)問(wèn)題是什么原因呢  
回復(fù)  更多評(píng)論   

<2008年6月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

導(dǎo)航

統(tǒng)計(jì)

常用鏈接

留言簿(22)

隨筆分類(30)

隨筆檔案(29)

文章分類

搜索

積分與排名

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美亚洲午夜视频在线观看| 国产农村妇女精品一区二区| 亚洲第一网站| 欧美激情第9页| 国产精品v欧美精品v日韩 | 亚洲免费观看高清完整版在线观看| 久久理论片午夜琪琪电影网| 亚洲精品国产精品国产自| 亚洲卡通欧美制服中文| 国产欧美在线看| 欧美成人69av| 欧美三区视频| 久久男人av资源网站| 国产精品高潮呻吟视频| 久久久久亚洲综合| 欧美日韩精品高清| 欧美xart系列在线观看| 国产欧美视频一区二区三区| 亚洲精品偷拍| 亚洲一区二区三区精品在线观看 | 裸体素人女欧美日韩| 亚洲欧美资源在线| 欧美黄色大片网站| 国产伦精品一区二区三区在线观看| 国产在线精品自拍| 亚洲一区在线免费观看| 日韩亚洲一区二区| 欧美精品九九99久久| 欧美福利在线观看| 亚洲经典三级| 欧美视频网站| 亚洲视频一区| 午夜精品久久久久久久男人的天堂| 欧美日韩精品一区二区三区| 亚洲精品欧美一区二区三区| 亚洲精品中文在线| 国产精品v欧美精品v日韩| 亚洲图片欧美一区| 久久综合影视| 日韩一级大片在线| 一本一本a久久| 亚洲一区在线看| 亚洲影音先锋| 久久精品国产77777蜜臀| 欧美伊人久久久久久午夜久久久久| 日韩视频永久免费| 亚洲一区二区三区视频播放| 在线性视频日韩欧美| 亚洲欧美激情诱惑| 玖玖综合伊人| 亚洲国产精品va| 一区二区三区欧美| 欧美亚洲自偷自偷| 久久久xxx| 亚洲欧美韩国| 欧美在线播放高清精品| 一本久久知道综合久久| 亚洲免费不卡| 一本色道综合亚洲| 一区二区激情小说| 一区二区三区欧美视频| 99精品久久免费看蜜臀剧情介绍| 亚洲国产精品久久精品怡红院| 国产精品日韩一区二区| 欧美女主播在线| 欧美日韩成人在线| 欧美视频一区二区三区…| 欧美日韩福利| 国产性做久久久久久| 欧美视频在线观看一区| 国产精品无码永久免费888| 黄色日韩网站| 亚洲图片欧美午夜| 久久精品视频免费| 亚洲人成亚洲人成在线观看图片| 日韩视频精品| 久久精品亚洲一区二区三区浴池 | 欧美日韩在线精品| 欧美三级在线| 亚洲欧洲精品一区二区三区 | 欧美日韩在线观看一区二区| 国产精品乱码| 亚洲人人精品| 久久精品欧美| 亚洲欧美国产精品桃花| 免费观看在线综合| 国产午夜精品美女视频明星a级| 亚洲三级视频在线观看| 美女999久久久精品视频| 亚洲午夜激情网站| 国产精品sm| 在线综合欧美| 亚洲黄色有码视频| 久久久久久网| 99精品久久免费看蜜臀剧情介绍| 久久成人这里只有精品| 久久岛国电影| 久久久精品免费视频| 久久夜色精品国产噜噜av| 蜜臀99久久精品久久久久久软件 | 欧美一区二区三区在| 女主播福利一区| 欧美一级视频免费在线观看| 亚洲国产精品小视频| 亚洲影院在线| av成人天堂| 久久久久久久久久久久久女国产乱 | 亚洲精品久久久久久久久| 久久亚洲一区| 国产精品magnet| 亚洲高清视频的网址| 国产欧美日韩在线 | 国产精品免费小视频| 欧美成人综合网站| 国产伦理一区| 亚洲欧美视频在线| 亚洲婷婷在线| 国产精品成人va在线观看| 免费中文日韩| 黑人一区二区| 久久精品视频在线观看| 久久精品日韩欧美| 国产精品一区二区三区观看| 在线亚洲免费| 亚洲欧美国产三级| 国产精品伊人日日| 午夜精彩国产免费不卡不顿大片| 一区二区三区精品| 国产精品第13页| 亚洲一区图片| 老色批av在线精品| 91久久精品美女高潮| 欧美黄色影院| 午夜精品一区二区三区电影天堂 | 亚洲精品乱码久久久久久蜜桃麻豆 | 亚洲视频免费在线| 久久久久久久一区二区三区| 亚洲欧美日韩人成在线播放| 伊人精品成人久久综合软件| 99re66热这里只有精品3直播 | 欧美激情精品久久久六区热门 | 久久激情视频久久| 亚洲欧美一级二级三级| 尤物网精品视频| 亚洲精品一区二区三区蜜桃久 | 在线欧美日韩精品| a91a精品视频在线观看| 国产欧美日韩伦理| 亚洲精品免费网站| 国内精品一区二区三区| 亚洲国产精品福利| 国内精品久久久久影院色| 欧美激情a∨在线视频播放| 欧美日韩免费区域视频在线观看| 亚洲一区久久久| 欧美另类久久久品| 999亚洲国产精| 亚洲欧洲精品天堂一级| 国产麻豆日韩| 欧美大尺度在线观看| 亚洲欧洲精品天堂一级| 亚洲性夜色噜噜噜7777| 久久久久国产精品午夜一区| 影音先锋久久| 99精品久久免费看蜜臀剧情介绍| 国产精品二区在线| 欧美国产综合一区二区| 亚洲国产精品嫩草影院| 小黄鸭视频精品导航| 香蕉久久夜色精品国产使用方法| 免费在线观看精品| 美女免费视频一区| 亚洲欧美在线视频观看| 樱桃国产成人精品视频| 欧美成人免费va影院高清| 欧美日本不卡视频| 国产伦理一区| 最新69国产成人精品视频免费| 一区二区三区精品国产| 久久久国产精品亚洲一区| 亚洲第一视频网站| 一本色道88久久加勒比精品| 久久爱www| 欧美日韩国语| 一区二区三区在线观看国产| 一本到12不卡视频在线dvd| 久久激情网站| 一个色综合导航| 麻豆精品网站| 国产欧美在线播放| 在线视频一区观看| 男人的天堂亚洲在线| 一本色道久久88综合日韩精品| 久久精品国产亚洲一区二区| 国产精品国产| 亚洲视频一区二区在线观看| 欧美成人r级一区二区三区| 亚洲欧美另类国产| 欧美日韩黄视频| 亚洲精品视频在线看|