C語言訪問webservice小例子

2021-08-10 15:19:31 字數 1549 閱讀 3530

c語言訪問webservice小例子

近期做的乙個專案中,需要訪問webservice獲取一些json格式的資料。返回的頁面內容只是json格式的資料,並不像實際頁面那麼複雜。所以不想再引入工具庫,直接用socket簡單實現了。

#include

#include

#include

#include

#include

int main()

;          //請求緩衝區

char recvbuff[4096] = ;     //接收緩衝區

char *data = null;              

struct timeval time = ;

int ret = 0;

//填充webservice主機資訊

memset(&ser_addr, 0, sizeof(ser_addr));

ser_addr.sin_family = af_inet;

ser_addr.sin_port = htons(80);

ret = inet_pton(af_inet, "127.0.0.1", &ser_addr.sin_addr.s_addr);

if (ret < 0)

if (ret == 0)

//建立socket

sockfd = socket(af_inet, sock_stream, 0);

if(sockfd < 0)

//設定阻塞時間為5s

ret = setsockopt(sockfd, sol_socket, so_rcvtimeo, (const char*)&time, sizeof(time));

if (ret < 0)

//連線webservice

ret = connect(sockfd, (struct sockaddr *)&ser_addr, sizeof(struct sockaddr));

if(ret != 0)

//填充請求url 請求頭部其他屬性自行新增。每行以換行加回車結束

//發起http請求

ret = send(sockfd, url, strlen(url), 0);

if (ret < 0)

puts("send success");

//頁面返回

ret = recv(sockfd, recvbuff, sizeof(recvbuff), 0);

if (ret < 0)

puts("recv success");

//解析返回頁面,將data指標指向資料主體

data = strstr(recvbuff,"\r\n\r\n");

data += 4;

//列印頁面

if (data != null)

end:

close(sockfd);

return 0;

}

C 動態改變webservice的訪問位址

2 配置服務http lenovo pc 80 evisaws wharfservice?wsdl,那麼在上面的檔案中就會自動生成服務的配置 wharfwsbeanclient c new wharfwsbeanclient wharfservice 新的位址例如 4.1 存到登錄檔 registr...

如何訪問webService介面

在上篇的文章中我們接觸到如何來編寫webservice介面,這篇文章我們將講述的是如何來訪問webservice介面 首先比如這樣的乙個介面 乙個很普通的webservice我們應該如何來進行呼叫這個介面 第一步 利用jdk的wsimport命令來生成 wsimport keep 第二步 呼叫對應的...

webService訪問加密 Soapheader

csharp copy font size 10px using system using system.data using system.configuration using system.web using system.web.security using system.web.ui us...