日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
【鴻蒙開發(fā)實(shí)錄】在Hi3861開發(fā)板上發(fā)送一個(gè)get請求

想了解更多內(nèi)容,請?jiān)L問:

公司主營業(yè)務(wù):網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出長葛免費(fèi)做網(wǎng)站回饋大家。

和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.

由于liteos-m上已經(jīng)移植了lwip(一個(gè)小型開源的TCP/IP協(xié)議棧),所以在開發(fā)板上面進(jìn)行網(wǎng)絡(luò)編程相對來說還是比較方便。相關(guān)api可在kernel/網(wǎng)絡(luò).md · OpenHarmony/docs - Gitee.com上查看。

技術(shù)有限,如有錯(cuò)誤還望不吝賜教。

基礎(chǔ):完成官方的快速入門教程

下載源碼后可以看到在目錄

 
 
 
 
  1. \\vendor\hisi\hi3861\hi3861\app\demo\src\ 

有許多的例程代碼:

而其中剛好有http客戶端的代碼, 詳見\\vendor\hisi\hi3861\hi3861\app\demo\src\app_http_client.c,而我們只需要將這些代碼按照官方入門教程的開發(fā)方式移植到

 
 
 
 
  1. \\applications\sample\wifi-iot\app 

(其實(shí)官方例程貌似可以不需要更改,但使用的是make/makefile來構(gòu)造編譯,官方教程則是gn/ninja,如果按照官方教程來就只能改代碼了)

1、首先需要讓開發(fā)板連接上網(wǎng)絡(luò),詳細(xì)可參考連志安老師的帖子Hi3861 WiFi操作,熱點(diǎn)連接,或者下載下面的源碼參考

需要注意的是,在連接進(jìn)行完WIFI連接操作后,需要使用sleep一段時(shí)間,讓開發(fā)板有足夠的時(shí)間連接上網(wǎng)絡(luò)。

 
 
 
 
  1. int ret; 
  2.    ret = hi_wifi_start_sta(); 
  3.    if(ret == -1) { 
  4.        printf("[Wifi] Connect failed!\n"); 
  5.    } else { 
  6.        printf("[Wifi] Connect sucess!\n"); 
  7.    } 
  8.    sleep(5); 

 2、定義get請求的header以及請求服務(wù)器的IP地址

 
 
 
 
  1. static const char *g_request = "GET / HTTP/1.1\r\n\ 
  2. Content-Type: application/x-www-form-urlencoded;charset=UTF-8\r\n\ 
  3. Host: baidu.com\r\n\ 
  4. Connection: close\r\n\ 
  5. \r\n"; 
  6. const char addr_ip[] = "192.168.1.103"; 

 因?yàn)閔ttp服務(wù)是我電腦開啟的,所以ip地址是我電腦的局域網(wǎng)ip地址,大家可以直接使用某些公網(wǎng)網(wǎng)站的ip地址進(jìn)行測試,下面會(huì)介紹我的測試方式。

創(chuàng)建一個(gè)Socket并連接以及寫入請求

 
 
 
 
  1. struct sockaddr_in addr = {0}; 
  2.    int s, r; 
  3.    char recv_buf[HTTPC_DEMO_RECV_BUFSIZE]; 
  4.    addr.sin_family = AF_INET; 
  5.    addr.sin_port = PP_HTONS(SOCK_TARGET_PORT); 
  6.    addr.sin_addr.s_addr = inet_addr(addr_ip); 
  7.    s = socket(AF_INET, SOCK_STREAM, 0); 
  8.    if (s < 0) { 
  9.        return 1; 
  10.    } 
  11.    printf("... allocated socket"); 
  12.    if (connect(s, (struct sockaddr*)&addr, sizeof(addr)) != 0) { 
  13.        printf("... socket connect failed errno=%d", errno); 
  14.        lwip_close(s); 
  15.        return 1; 
  16.    } 
  17.    printf("... connected"); 
  18.    if (lwip_write(s, g_request, strlen(g_request)) < 0) { 
  19.        lwip_close(s); 
  20.        return 1; 
  21.    } 

 接受獲取到的數(shù)據(jù)并打印 

 
 
 
 
  1. do { 
  2.       (void)memset_s(recv_buf, sizeof(recv_buf), 0, sizeof(recv_buf)); 
  3.       r = lwip_read(s, recv_buf, sizeof(recv_buf) - 1); 
  4.       for (int i = 0; i < r; i++) { 
  5.           putchar(recv_buf[i]); 
  6.       } 
  7.   } while (r > 0); 

 3、服務(wù)端,我是用的是python建立一個(gè)http文件服務(wù)器,很簡單,就在命令行一行代碼

 
 
 
 
  1. python -m http.server 80 

在電腦上可通過127.0.0.1訪問,開發(fā)板需要和電腦位于同一局域網(wǎng)內(nèi),通過ip地址連接。ip地址可在cmd輸入ipconfig查看(windows)或Linux shell 輸入ifconfig查看(Linux)。也可不用自己建立web服務(wù),訪問一個(gè)http協(xié)議網(wǎng)站的ip地址即可(自行百度),注意不能使用域名訪問。

4、結(jié)果

可在命令行看到獲取的數(shù)據(jù)

 在web服務(wù)器端能看到連接的記錄

192.168.1.105是開發(fā)板的ip地址

想了解更多內(nèi)容,請?jiān)L問:

和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.


網(wǎng)站題目:【鴻蒙開發(fā)實(shí)錄】在Hi3861開發(fā)板上發(fā)送一個(gè)get請求
URL標(biāo)題:http://m.5511xx.com/article/dhdihoh.html