精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

跟著小白一起學鴻蒙--]簡單Http客戶端(十二)

系統(tǒng) OpenHarmony
HTTP 是一個基于 TCP/IP 通信協(xié)議來傳遞數據(HTML 文件、圖片文件、查詢結果等)。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區(qū)??

??https://ost.51cto.com??

在《#跟著小白一起學鴻蒙# [二] 第一個OpenHarmony程序》我們熟悉了如何在開源鴻蒙開發(fā)應用,并通過hdc工具拷貝至開發(fā)板運行。但是那時候我們只是打印了最簡單的hello world,接下來我們就講開發(fā)最常用的部分,一個簡單的http客戶端;

概述

  • HTTP 是一個基于 TCP/IP 通信協(xié)議來傳遞數據(HTML 文件、圖片文件、查詢結果等)。
  • HTTP是一個屬于應用層的面向對象的協(xié)議,由于其簡捷、快速的方式,適用于分布式超媒體信息系統(tǒng)。它于1990年提出,經過幾年的使用與發(fā)展,得到不斷地完善和擴展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的規(guī)范化工作正在進行之中,而且HTTP-NG(Next Generation of HTTP)的建議已經提出。
  • HTTP協(xié)議工作于客戶端-服務端架構為上。瀏覽器作為HTTP客戶端通過URL向HTTP服務端即WEB服務器發(fā)送所有請求。Web服務器根據接收到的請求后,向客戶端發(fā)送響應信息。

HTTP請求消息Request

  • 請求數據結構如下

#沖刺創(chuàng)作新星# #跟著小白一起學鴻蒙# [十二]簡單Http客戶端-開源基礎軟件社區(qū)

  • 一個Get的sample

在瀏覽器輸入www.baidu.com然后回車即可看到瀏覽器顯示了百度的頁面,按F12可以看到具體內容:

#沖刺創(chuàng)作新星# #跟著小白一起學鴻蒙# [十二]簡單Http客戶端-開源基礎軟件社區(qū)

??上圖里我們可以看到在請求的url是www.baidu.com??,請求的方法是GET,服務器的IP地址是180.101.49.14:443(https,若是http就是80)。

  • 一個Post的sample

#沖刺創(chuàng)作新星# #跟著小白一起學鴻蒙# [十二]簡單Http客戶端-開源基礎軟件社區(qū)

  • 上圖里我們可以看到在請求的url是https://cysz.hopethink.com/qhhsd/app/getH5HsdList,請求的方法是POST,服務器的IP地址是114.215.124.251:443(https,若是http就是80),請求內容類型application/x-www-form-urlencoded;charset=UTF-8,請求數據長度84,請求數據keyword=&streetId=&pageNum=1&pageSize=1&ip=222.95.30.84。

此樣例參考小熊派設計,使用小熊派HM_Micro開發(fā)板進行驗證。

應用開發(fā)流程

graph LR
建立build.gn --> 建立helloworld.c --> 添加httpget --> 添加httppost --> 驗證

建立Build.gn。

import("http://build/lite/config/component/lite_component.gni")

executable("hello_world_lib") {
output_name = "hello_world"
sources = [ "hello_world.c" ]
include_dirs = []
defines = []
cflags_c = []
ldflags = []
}
lite_component("my_app") {
features = [
":hello_world_lib",
]
}

建立helloworld.c。

#include <stdio.h>
int main(int argc, char **argv)
{
printf("\n************************************************\n");
printf("\n\t\tHello httpget!\n");
printf("\n************************************************\n\n");
return 0;
}

添加httpget。

int sockfd, ret, i, h;
struct sockaddr_in servaddr;
char str1[BUF_SIZE], str2[BUF_SIZE], buf[BUF_SIZE], *str;
socklen_t len;
fd_set t_set1;
struct timeval tv;
//創(chuàng)建套接字
if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0 ) {
printf("create socket failed--- exit(0)!\n");
exit(0);
};
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(PORT);
if (inet_pton(AF_INET, IPSTR_GET, &servaddr.sin_addr) <= 0 ){
printf("inet_pton failed --- exit(0)!\n");
exit(0);
};
if (connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)) < 0){
printf("connect failed, exit(0)!\n");
exit(0);
}
printf("connect remote server\n");
memset(str2, 0, BUF_SIZE);
strcat(str2, "theDataToGet");
str=(char *)malloc(BUF_SIZE);
len = strlen(str2);
sprintf(str, "%d", len);
//請求頭部內容
memset(str1, 0, BUF_SIZE);
strcat(str1, "GET / HTTP/1.1\n");
strcat(str1, "Host: www.baidu.com\n");
strcat(str1, "Content-Type: text/html\n");
strcat(str1, "Content-Length: ");
strcat(str1, str);
//請求空行
strcat(str1, "\n\n");
//請求參數
strcat(str1, str2);
strcat(str1, "\r\n\r\n");
printf("%s\n",str1);
ret = write(sockfd,str1,strlen(str1));
if (ret < 0) {
printf("socket write failed! errcode%d,errmsg'%s'\n",errno, strerror(errno));
exit(0);
}else{
printf("socket write %d bytes!\n\n", ret);
}
FD_ZERO(&t_set1);
FD_SET(sockfd, &t_set1);
while(1) {
sleep(2);
h = 0;
h = select(sockfd +1, &t_set1, NULL, NULL, &tv);
if (h < 0) {
close(sockfd);
printf("SELECT error, return -1!\n");
return -1;
};

if (h > 0){
memset(buf, 0, BUF_SIZE);
i= read(sockfd, buf, BUF_SIZE);
if (i==0){
close(sockfd);
printf("read 0, return -1!\n");
return -1;
}
printf("%s\n", buf);
}
}
close(sockfd);
return 0;

httppost:

int sockfd, ret, i, h;
struct sockaddr_in servaddr;
char str1[BUF_SIZE], str2[BUF_SIZE], buf[BUF_SIZE], *str;
socklen_t len;
fd_set t_set1;
struct timeval tv;

if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0 ) {
printf("create sockt failed---exit(0)!\n");
exit(0);
};

bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(PORT);
if (inet_pton(AF_INET, IPSTR_POST, &servaddr.sin_addr) <= 0 ){
printf("inet_pton failed---exit(0)!\n");
exit(0);
};
if (connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)) < 0){
printf("connect server failed, exit(0)!\n");
exit(0);
}
printf("connect to server\n");
memset(str2, 0, BUF_SIZE);
strcat(str2, "keyword=&streetId=&pageNum=1&pageSize=1&ip=222.95.30.84");
str=(char *)malloc(BUF_SIZE);
len = strlen(str2);
sprintf(str, "%d", len);
//請求頭部內容
memset(str1, 0, BUF_SIZE);
strcat(str1, "POST /qhhsd/app/getH5HsdList HTTP/1.1\n");
strcat(str1, "Host: cysz.hopethink.com\n");
strcat(str1, "Content-Type: application/x-www-form-urlencoded\n");
strcat(str1, "Content-Length: ");
strcat(str1, str);
//請求空行
strcat(str1, "\n\n");
//str2的值為post的數據
strcat(str1, str2);
strcat(str1, "\r\n\r\n");
printf("%s\n",str1);
ret = write(sockfd,str1,strlen(str1));
if (ret < 0) {
printf("socket write failed! errcode%d, errmsg'%s'\n",errno, strerror(errno));
exit(0);
}else{printf("socket write %d bytes\n\n", ret);
}
FD_ZERO(&t_set1);
FD_SET(sockfd, &t_set1);
tv.tv_sec= 0;
tv.tv_usec= 0;
h= 0;
while(1) {
sleep(2);
h = select(sockfd +1, &t_set1, NULL, NULL, &tv);
if (h == -1) {
close(sockfd);
printf("select error, return -1\n");
return -1;};
if ( FD_ISSET(sockfd, &t_set1) ){
memset(buf, 0, BUF_SIZE);
i= read(sockfd, buf, BUF_SIZE);
if (i==0){
close(sockfd);
printf("read 0, return -1!\n");
return -1;
}
printf("%s\n", buf);}
}
close(sockfd);
return 0;

在main里增加方法和頭文件。

  • 頭文件

#include <stdio.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <time.h>
#include <errno.h>
#include <signal.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/wait.h>
#include <sys/time.h>
#include <netinet/in.h>
#include <arpa/inet.h>

#define IPSTR_GET "180.101.49.14" //服務器IP地址,上面查出來的;
#define IPSTR_POST "114.215.124.251"

#define PORT 80
#define BUF_SIZE 4096

  • 方法

httpget();
httppost();

測試結果:

Get測試結果:

Post測試結果:

總結

  1. http是建立在socket之上的數據結構化應用協(xié)議,可以通過拼socket包實現(xiàn)所有功能。
  2. 之后我們可以利用此接口實現(xiàn)一個核算地圖的界面應用。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區(qū)??

??https://ost.51cto.com??。

責任編輯:jianghua 來源: 51CTO開源基礎軟件社區(qū)
相關推薦

2022-11-29 16:35:02

Tetris鴻蒙

2022-12-02 14:20:09

Tetris鴻蒙

2023-03-30 09:32:27

2022-11-14 17:01:34

游戲開發(fā)畫布功能

2022-10-10 14:47:04

藍牙應用鴻蒙

2023-04-04 09:24:11

鴻蒙HiDumper

2022-10-17 14:29:24

鴻蒙應用開發(fā)

2023-02-27 16:30:32

鴻蒙開源協(xié)議分析

2023-03-30 09:19:54

SELinux安全子系統(tǒng)

2022-08-19 19:02:20

開源鴻蒙操作系統(tǒng)

2023-01-03 15:09:10

鴻蒙常用工具

2022-12-06 15:39:16

鴻蒙主干代碼

2022-11-24 14:34:41

Hap程序鴻蒙

2023-03-15 16:19:03

BinderIPC工具

2022-10-20 16:40:16

JS應用控制LED鴻蒙

2022-10-09 15:05:50

NAPI框架鴻蒙

2023-04-06 09:18:52

鴻蒙AVPlayerAVRecorder

2022-11-28 15:42:39

分布式軟總線鴻蒙

2023-02-24 16:02:45

WebSocket網絡通訊協(xié)議

2022-12-05 15:02:14

鴻蒙用戶鑒權
點贊
收藏

51CTO技術棧公眾號

日韩美女一级视频| 日韩欧美激情视频| 精品中文字幕一区二区三区四区| 亚洲精品久久久蜜桃| 精品sm捆绑视频| 一二三四视频社区在线| 成人一区二区不卡免费| 国产成人在线看| 国产成人精品电影久久久| 黑人と日本人の交わりビデオ| 97色婷婷成人综合在线观看| 精品久久中文字幕| 色香蕉在线观看| 色婷婷av一区二区三区之红樱桃 | 日韩综合在线观看| 欧美日韩在线播放视频| 精品国产一二三| the porn av| 久久久精品成人| 四虎在线精品| 欧美午夜宅男影院在线观看| 中文字幕久精品免| 牛牛热在线视频| 国产99精品视频| 国产精品视频网| 日本在线视频免费观看| 精品国产欧美| 色噜噜偷拍精品综合在线| h无码动漫在线观看| 在线观看黄色av| 26uuu精品一区二区三区四区在线| 91视频免费在线| 国产精品无码粉嫩小泬| 亚洲激情影院| 欧美精品一区二区三区高清aⅴ | 亚洲色图13p| 第一页在线视频| av在线免费播放网站| 成人三级伦理片| 成人日韩在线电影| 亚洲中文无码av在线| 免费一区视频| 性欧美暴力猛交69hd| 国产高潮国产高潮久久久91| 欧美3p视频| 一色桃子一区二区| aaaaa级少妇高潮大片免费看| 97一区二区国产好的精华液| 日韩一区二区在线播放| 天天操精品视频| 国产精品天堂蜜av在线播放| 在线免费av一区| 国产欧美高清在线| 一个人www视频在线免费观看| 亚洲第一激情av| 久操手机在线视频| 男人天堂亚洲| 亚洲一区在线视频观看| 超级碰在线观看| 二区在线播放| 一区二区三区欧美| 日本黄色片一级片| 欧美性受ⅹ╳╳╳黑人a性爽| 一区二区在线观看不卡| 亚洲精品国产suv一区88| a视频网址在线观看| 国产精品欧美一区二区三区| 亚洲一区二三| av电影高清在线观看| 亚洲另类在线制服丝袜| 国产青草视频在线观看| a级网站在线播放| 亚洲啪啪综合av一区二区三区| 成人高清在线观看| 午夜精品在线播放| 成年人国产精品| 国产精品久久综合av爱欲tv| 中文字幕av在线免费观看| 蜜桃视频第一区免费观看| 国产日韩av在线| 日本少妇全体裸体洗澡| 99精品视频免费全部在线| 18一19gay欧美视频网站| caoporn国产| 免费观看成人av| 91精品久久香蕉国产线看观看| 国产欧美一区二区三区在线看蜜臂| 国产精品一卡| 国产欧美韩国高清| 成 人片 黄 色 大 片| 99视频一区二区| 日本在线观看一区二区| 欧美视频久久久| 国产亚洲一区二区在线观看| 伊人久久青草| 超碰在线视屏| 欧美日韩国产区一| 国产一线在线观看| 欧美日韩一区二区综合| 欧美激情视频网址| 午夜三级在线观看| 亚洲二区精品| 国产精品专区h在线观看| 丰满岳乱妇国产精品一区| 国产丝袜在线精品| 国产在线视频综合| 欧美日韩在线精品一区二区三区激情综合 | 亚洲高清影院| 日韩av在线电影网| 99国产精品免费视频| 韩国成人在线| 精品欧美一区二区久久| 美国黄色特级片| 在线精品福利| 成人a免费视频| 外国精品视频在线观看 | 亚洲男人av| 欧美高清dvd| 欧美做受喷浆在线观看| 综合激情在线| 国产精品日韩欧美| 婷婷丁香花五月天| 亚洲精品国产第一综合99久久 | 日韩视频在线免费播放| 欧美片第一页| 欧美精品一区二区久久久| 天海翼在线视频| 肉色丝袜一区二区| 精品一区二区国产| 日韩免费影院| 在线91免费看| 色国产在线视频| 日韩激情网站| 久久久久久国产免费| 亚洲综合一区中| 久久久99精品免费观看不卡| 欧美性天天影院| 欧美人体视频xxxxx| 9191精品国产综合久久久久久| 女女互磨互喷水高潮les呻吟| 亚洲高清在线| 5566av亚洲| 成人日批视频| 欧美美女直播网站| 9.1片黄在线观看| 视频一区在线播放| 欧美日韩亚洲在线| 自拍网站在线观看| 亚洲欧美中文日韩在线| 久久久久久少妇| av毛片久久久久**hd| 免费人成自慰网站| 国产福利电影在线播放| 日韩精品一区二区三区视频在线观看 | 日韩在线观看一区二区三区| 久久伊人精品视频| 国产成a人亚洲精v品无码| 成人免费在线观看入口| 亚洲欧美日韩三级| 亚欧美无遮挡hd高清在线视频| 国产综合香蕉五月婷在线| 免费在线观看av| 欧美一区二区视频在线观看2020| 九九精品视频免费| 国产馆精品极品| av网站手机在线观看| 国产精品x8x8一区二区| 97精品一区二区三区| 婷婷亚洲一区二区三区| 色www精品视频在线观看| 非洲一级黄色片| 久久国产精品第一页| 欧美少妇一区二区三区| 99re8这里有精品热视频免费| 久久久久久亚洲| 视频一区二区三区国产| 91国偷自产一区二区使用方法| 一区二区三区四区免费| 另类的小说在线视频另类成人小视频在线 | 菠萝蜜一区二区| 成人福利视频网| 黄视频在线免费看| 欧美亚洲综合一区| 天天操夜夜操av| 懂色av一区二区夜夜嗨| 各处沟厕大尺度偷拍女厕嘘嘘| 国产日韩欧美一区二区三区| 成人免费网视频| freexxx性亚洲精品| 一区二区三区视频免费在线观看 | 亚洲成人精品久久久| 欧美黑人一区二区| 中文字幕五月欧美| 日本一区二区在线观看视频| 久久三级福利| 大地资源网在线观看免费官网| 卡通动漫国产精品| 久久视频免费在线播放| 人人妻人人澡人人爽人人欧美一区| 欧美日韩午夜视频在线观看| 99久久精品久久亚洲精品| 成人爽a毛片一区二区免费| 激情综合网俺也去| 国产精品啊啊啊| 日韩免费一区二区三区| 成人激情自拍| 国产欧美精品va在线观看| 国产精品一二三产区| 主播福利视频一区| 亚州视频一区二区三区| 在线播放欧美女士性生活| 国产微拍精品一区| 亚洲乱码一区二区三区在线观看| 国产精品一区二区入口九绯色| 久久国产精品色| 中文字幕无码不卡免费视频| 欧美片第1页综合| 亚洲视频在线二区| 国产成人ay| 国产美女精品久久久| 99热这里有精品| 国产精品久久9| 台湾佬中文娱乐网欧美电影| 精品视频9999| 国产一区久久精品| 国产一级揄自揄精品视频| 天天色棕合合合合合合合| 91精品国产高清一区二区三区 | 久久婷婷开心| 99亚洲乱人伦aⅴ精品| 成人在线观看视频网站| 精品国产欧美日韩一区二区三区| 91成人国产在线观看| 日本h片在线| 九色精品免费永久在线| 毛片激情在线观看| 中国china体内裑精亚洲片| 免费一级在线观看播放网址| 日韩的一区二区| 深夜福利视频网站| 欧美大胆一级视频| 亚洲成人av综合| 欧美一级欧美一级在线播放| 国产精品久久影视| 欧美日韩一级片在线观看| jizz国产在线| 亚洲欧美日韩久久精品| 欧美自拍偷拍网| 国产精品视频观看| 国产主播av在线| 国产精品久久久久久久久动漫| 日韩成人精品视频在线观看| 日韩二区在线观看| 日本成人黄色网| 日本女优在线视频一区二区| 精品久久久久久久无码| 日本欧美在线看| 免费看涩涩视频| 精品亚洲欧美一区| 日本一本在线视频| 成人毛片在线观看| 中文字幕av观看| 久久精品综合网| 日韩福利在线视频| 中文字幕在线一区免费| 成人免费视频网站入口::| 亚洲自拍偷拍综合| 国产成人亚洲欧洲在线| 色综合天天综合网天天看片| 日韩精品一区二区亚洲av性色 | 黑人巨大亚洲一区二区久 | 久久久久亚洲av成人毛片韩| 色哟哟亚洲精品| 亚洲视频久久久| 91精品国产综合久久精品app| 亚洲免费成人网| 亚洲美女av在线播放| 1区2区3区在线观看| 久热国产精品视频| www成人免费观看| 国产精品99久久久久久白浆小说 | 国产精品久久九九| 免费短视频成人日韩| 一区二区视频国产| 一区二区视频欧美| 天天天干夜夜夜操| 国产精品一区二区在线播放 | 欧美激情一区二区三区在线视频观看| 9lporm自拍视频区在线| 日韩免费在线视频| 嫩呦国产一区二区三区av| 久久99九九| 国产精品久久占久久| 免费 成 人 黄 色| 韩国av一区二区三区| 亚洲中文字幕一区| 综合欧美一区二区三区| 在线天堂中文字幕| 91精品免费观看| 邻家有女韩剧在线观看国语| 久久福利网址导航| 欧美成人a交片免费看| 91国产在线播放| 青青草原综合久久大伊人精品 | 黑人狂躁日本娇小| 福利视频第一区| 国产日产亚洲系列最新| 亚洲天堂成人在线视频| 伦理在线一区| 成人妇女淫片aaaa视频| 国产欧美日韩视频在线| 欧美一级免费播放| 久久se精品一区精品二区| 中文乱码人妻一区二区三区视频| 亚洲日本电影在线| 中文字幕天堂在线| 亚洲精品aaaaa| 成人欧美一区二区三区黑人孕妇 | 免费超碰在线| 日本一本a高清免费不卡| 在线一区二区三区视频| 亚洲午夜精品福利| 久久激情一区| 国产精品一级黄片| 亚洲一区二区三区小说| 一级做a爱片性色毛片| 国产亚洲视频中文字幕视频| 在线看片福利| 精品国产二区在线| 欧美日韩a区| 日韩欧美中文在线视频| 中文字幕在线一区| 精品国产青草久久久久96| 亚洲片av在线| 中文在线8资源库| 精品伦精品一区二区三区视频 | 久久91精品国产| 国产电影一区二区| 亚洲一卡二卡三卡四卡无卡网站在线看| 免费永久网站黄欧美| 黄瓜视频污在线观看| 午夜久久久久久久久久一区二区| 亚洲av永久纯肉无码精品动漫| 不用播放器成人网| 成人在线精品| 妞干网这里只有精品| 国产欧美一区| 国产熟女高潮视频| 久久精品一区二区| 神马久久久久久久 | 国产精品 日韩| 精品成人国产| 人妻无码中文久久久久专区| 欧美日韩国产页| 日韩大片b站免费观看直播| 欧美最猛性xxxxx免费| 国产精品美女久久久久久不卡| 日日摸日日碰夜夜爽av| 久久久久久亚洲综合影院红桃| www.国产毛片| 在线视频精品一| 狠狠久久伊人中文字幕| 永久久久久久| 国产91精品免费| 91香蕉在线视频| 亚洲精品自拍视频| 日本精品在线一区| 性欧美18一19内谢| 福利一区福利二区| 国产专区第一页| 日韩中文av在线| 北条麻妃一区二区三区在线| 欧美日韩黄色一级片| 国产亚洲精品bt天堂精选| 亚洲一区中文字幕永久在线| 欧美成人第一页| 国产精品自在| 别急慢慢来1978如如2| 国产精品第五页| 国产成人手机在线| 日韩免费高清在线观看| 亚洲激情中文在线| 亚洲色图14p| 欧美午夜精品一区| 久久国产精品黑丝| 欧美二区三区在线| 国产美女在线精品| 精品无码在线观看| 91精品午夜视频| 川上优av中文字幕一区二区| 日韩视频在线播放| 丁香天五香天堂综合| 黄色网址中文字幕| 欧美激情精品久久久久久黑人| 国产精品一线天粉嫩av| 免费不卡av网站| 91久久奴性调教| 蜜桃传媒在线观看免费进入| 四虎永久国产精品| 成人黄色777网|