⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ckclient.cpp

📁 linux下简单对象应用协议的开发库
💻 CPP
字号:
#include "soapH.h"#include "ck.nsmap"////////////////////////////////////////////////////////////////////////////////////	Example cookie client//////////////////////////////////////////////////////////////////////////////////static char *ckserver = "http://www.cs.fsu.edu/~engelen/ck.cgi";// To access a stand-alone server on a port, use:// char ckserver[] = "IP:PORT";// char ckserver[] = "http://IP:PORT";	// include HTTP header in request// char ckserver[] = "http://linprog1.cs.fsu.edu:18081";// char ckserver[] = ""; // use I/O redirect// char ckserver[] = "http://"; // use I/O redirect (includes HTTP headers)int main(int argc, char **argv){ char *r;  struct soap soap;  if (argc >= 2)    ckserver = argv[1];  soap_init(&soap);  // gSOAP's cookie handling is fully automatic at the client-side.  // A database of cookies is kept and returned to the appropriate servers.  // In this demo, the value (int) of the (invisible) cookie is returned as  // an output parameter by the service to demonstrate that each call uses  // a unique and updated cookie. Cookies are not automatically saved to a  // file by the client. So the internal cookie database is discarded when  // the program terminates.  // To avoid "cookie storms" caused by malicious servers that return an   // unreasonable amount of cookies, gSOAP clients/servers are restricted to  // a database size that the user can limit (32 cookies by default):    soap.cookie_max = 10;  // In case all three calls below return the same cookie value 1, the service  // (ck.cgi) is unable to return cookies (e.g. because the Web server does  // not allow CGI applications to handle cookies which the user need to fix  // by reconfiguration and restart of the Web server). Or the  // soap.cookie_domain value is not set in the ckserver code to the host on  // which the service runs .  // First call (no cookies returned to service, service will return a cookie):  if (soap_call_ck__demo(&soap, ckserver, NULL, &r))  { soap_print_fault(&soap, stderr);    soap_print_fault_location(&soap, stderr);    exit(-1);  }  printf("The server responded with: %s\n", r);  // Second call (return cookie to service indicating continuation of session):  if (soap_call_ck__demo(&soap, ckserver, NULL, &r))  { soap_print_fault(&soap, stderr);    soap_print_fault_location(&soap, stderr);    exit(-1);  }  printf("The server responded with: %s\n", r);  // Third call (return cookie to service indicating continuation of session):  if (soap_call_ck__demo(&soap, ckserver, NULL, &r))  { soap_print_fault(&soap, stderr);    soap_print_fault_location(&soap, stderr);    exit(-1);  }  printf("The server responded with: %s\n", r);  // Fourth call (let cookie expire)  printf("Waiting 6 seconds to let cookie expire...\n");  sleep(6); // wait to let cookie expire  if (soap_call_ck__demo(&soap, ckserver, NULL, &r))  { soap_print_fault(&soap, stderr);    soap_print_fault_location(&soap, stderr);    exit(-1);  }  printf("The server responded with: %s\n", r);  soap_end(&soap);  return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -