关于“c_调用_php_webservice”的问题,小编就整理了【1】个相关介绍“c_调用_php_webservice”的解答:
怎么在c语言中用socket的方式调用webservice?可以实现,先connectsockaddr_in server;if (m_bSockConnected) {return TRUE;}server.sin_addr.s_addr = inet_addr(m_szHost);server.sin_family = AF_INET;server.sin_port = htons((UINT)m_nPort);if(connect(m_socket, (struct sockaddr*)&server, sizeof(server)) == SOCKET_ERROR){m_bSockConnected = FALSE;m_nLastErrorNo = WSAGetLastError();MessageBox(0, "请检网络和服务器", "网络连接错误", 0);return FALSE; }else{m_bSockConnected = TRUE;}int timeout=30;setsockopt(m_socket, SOL_SOCKET, SO_RCVTIMEO, (const char*)&timeout, sizeof(int));然后再发送urlchar requestHeader[1024]= {0};char nBuf[36] = {0};strcpy(requestHeader, "PUT ");strcat(requestHeader, szUrl);strcat(requestHeader, "&Content-Length=");_ui64toa(contentLength + 8, nBuf,10); //额外加了传输完成头的长度是8 strlen(SEND_END_STRING)strcat(requestHeader, nBuf);strcat(requestHeader, "&FileCount=");ltoa(fileCount,nBuf, 10);strcat(requestHeader, nBuf);strcat(requestHeader," HTTP/1.1\r\nContent-Length: ");_ui64toa(contentLength + 8, nBuf, 10);strcat(requestHeader,nBuf);strcat(requestHeader,"\r\nHost: ");strcat(requestHeader,m_szHost);strcat(requestHeader,":");itoa(m_nPort,nBuf,10);strcat(requestHeader,nBuf);strcat(requestHeader,"\r\nAccept: */*;\r\nAccept-Encoding: gzip,deflate\r\nKeep-Alive: 60000\r\nConnection: keep-alive\r\n\r\n");//MessageBox(0, requestHeader, "info", 0);char * szUTF8 = NULL;BOOL bRet = FALSE;bRet = CCharTransLib::EncodeToUTF8(requestHeader,&szUTF8);if (bRet){if ( (int)strlen(szUTF8) != send(m_socket, szUTF8, strlen(szUTF8), 0)){m_nLastErrorNo = GetLastError();bRet = FALSE;}if (szUTF8){delete []szUTF8;szUTF8 = NULL;}}以上是从我工程里面摘的,可能有些变量楼主编译不过去,但基本思想就是这样的
到此,以上就是小编对于“c_调用_php_webservice”的问题就介绍到这了,希望介绍关于“c_调用_php_webservice”的【1】点解答对大家有用。