精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产一区香蕉久久| 亚洲人永久免费| 少妇久久久久久被弄到高潮| 国产av精国产传媒| 99人久久精品视频最新地址| 亚洲欧美中文日韩在线| 日韩av在线中文| 欧美色图天堂| 久久久电影一区二区三区| 国产精品视频久| 久久99久久98精品免观看软件| 好吊妞国产欧美日韩免费观看网站 | 精品一区欧美| 欧美日韩高清一区| 精品国产av无码一区二区三区| 久久久久久久影视| 国产美女娇喘av呻吟久久| 97成人精品区在线播放| 91禁男男在线观看| 国产一区福利| 91.麻豆视频| 日本黄网站免费| 超碰免费在线播放| 欧美韩日一区二区三区四区| 国产精品10p综合二区| 波多野结衣一区二区在线 | 国产成人午夜视频| 欧洲亚洲在线视频| 久久国产露脸精品国产| 日韩一区二区三区免费播放| 亚洲精品97久久| 精品亚洲视频在线| 四虎成人在线| 婷婷综合五月天| 4444在线观看| 永久av在线| 久久久99精品免费观看不卡| 国产 高清 精品 在线 a| 中文字幕在线播放av| 国产日韩一区| 久久久久久久网站| 日韩a级片在线观看| 色喇叭免费久久综合网| 亚洲精品视频在线观看视频| 91精品国产高清91久久久久久| 韩日一区二区| 色先锋资源久久综合| 青青青青草视频| 97caopron在线视频| 国产精品色一区二区三区| 免费精品视频一区| 四虎影院在线播放| jizz一区二区| 国产一区二区三区无遮挡| www.av网站| 国产成人鲁色资源国产91色综| 91久久久精品| 国产美女免费视频| 激情综合色丁香一区二区| 国产精品久久久久久久久久尿| 国产精品国产三级国产专区52| 一区久久精品| 性色av一区二区三区在线观看| 九九热国产精品视频| 欧美黄色一区| 久久久久久久久久亚洲| 国产成人无码精品| 亚洲一区日本| 国产成人精品在线播放| 免费在线不卡av| 日本一区中文字幕| 国产精品一区久久久| 中国一级片黄色一级片黄| 日韩中文字幕亚洲一区二区va在线| 日本不卡免费高清视频| 日本一本在线观看| 麻豆视频一区二区| 91在线免费看网站| 亚洲国产精品视频在线| 成人精品视频一区二区三区| 国产伦精品一区二区三区四区视频 | 啪啪激情综合网| 日韩av在线高清| 人人妻人人藻人人爽欧美一区| 国产一卡不卡| 爱福利视频一区| 免费在线黄色网| 91久久久久| 国产精品99导航| 国产精品国产三级国产aⅴ| 国产精品一区三区| 久久精品国产综合精品| 国产毛片av在线| 亚洲图片激情小说| 免费看欧美黑人毛片| 神马电影网我不卡| 欧美日韩电影在线播放| 精品人妻人人做人人爽夜夜爽| 欧美亚洲国产日韩| 综合欧美国产视频二区| 久久综合成人网| 日韩不卡手机在线v区| 91欧美激情另类亚洲| 天堂8在线视频| 国产精品天美传媒沈樵| 免费毛片网站在线观看| 亚洲第一会所| 欧美xingq一区二区| 18禁裸乳无遮挡啪啪无码免费| 人人狠狠综合久久亚洲婷婷| 欧美激情视频一区二区| 免费观看日批视频| 福利一区二区在线| 亚洲精品第一区二区三区| 国模雨婷捆绑高清在线| 在线看国产一区二区| 久久久久久无码精品人妻一区二区 | 欧美伊人久久久久久午夜久久久久| 91网址在线观看精品| 亚洲三级网址| 久久久免费精品视频| 影音先锋国产资源| 99久久久精品| 超级碰在线观看| jizz久久久久久| 精品视频久久久| 中文字幕在线有码| 免费成人美女在线观看| 久久久久久九九九九| 羞羞的视频在线观看| 欧美午夜影院一区| 性久久久久久久久久| 国模 一区 二区 三区| 国产免费久久av| 国产在线观看免费| 精品日韩中文字幕| 少妇伦子伦精品无吗| 91麻豆精品国产91久久久平台 | 日韩福利电影在线观看| 国产欧美日韩伦理| 青草在线视频在线观看| 欧美一区二区三区播放老司机| 国产熟女一区二区| 麻豆精品91| 久久久久久久久四区三区| 久色国产在线| 日韩欧美国产午夜精品| 污软件在线观看| 久久99精品久久久久久动态图 | 中文字幕一区不卡| 亚洲一二三区av| 久久不卡国产精品一区二区 | 日韩精品一级二级 | 精品国产视频| 欧美亚洲激情在线| 无码精品人妻一区二区三区影院| 亚洲一区二区视频在线| 亚洲国产欧美91| 综合视频在线| 超碰97国产在线| 免费电影网站在线视频观看福利| 日韩欧美中文一区二区| 久久综合亚洲色hezyo国产| 丁香六月久久综合狠狠色| 激情六月天婷婷| aiai久久| 69av在线视频| 你懂的视频在线| 欧洲亚洲精品在线| 制服丨自拍丨欧美丨动漫丨| 蜜桃视频在线观看一区二区| 亚洲欧洲久久| 精品国产亚洲一区二区三区大结局| 精品国产美女在线| 国产免费一区二区三区最新不卡| 亚洲男人电影天堂| 91人人澡人人爽| 99精品福利视频| 美女精品国产| 久久91超碰青草在哪里看| 久久精品国产96久久久香蕉| 国产激情视频在线播放| 亚洲成人综合网站| 精品无码国产污污污免费网站 | 欧美亚洲视频在线观看| 蝌蚪视频在线播放| 欧美日韩精品一区视频| 澳门黄色一级片| 99综合电影在线视频| www.国产区| 91视频综合| 岛国视频一区| 午夜日韩成人影院| 久久久国产91| 天天av天天翘| 欧美视频完全免费看| 欧美卡一卡二卡三| 久久久无码精品亚洲日韩按摩| 免费看污污网站| 欧美在线91| 美女一区视频| 精品国产一区二| 日本中文字幕成人| 黄色av电影在线播放| 亚洲国产又黄又爽女人高潮的| 中文字幕+乱码+中文字幕明步| 亚洲黄色录像片| 国产中年熟女高潮大集合| 国产大陆a不卡| 成人黄色片视频| 国产精品红桃| 色姑娘综合av| 欧美18免费视频| 91日本在线视频| 天天免费亚洲黑人免费| 欧美高清视频在线观看| av在线播放网站| 亚洲韩国日本中文字幕| 国产精品视频第一页| 91福利在线免费观看| 免费一级肉体全黄毛片| 中文一区二区在线观看| 精品国产人妻一区二区三区| 国产主播一区二区三区| 欧美性猛交久久久乱大交小说| 黄色欧美日韩| 日本xxx免费| 成人嘿咻视频免费看| 精品国产日本| 综合欧美亚洲| 成人黄色生活片| 日韩中文视频| 欧美最猛黑人xxxx黑人猛叫黄| 伊人福利在线| 久久香蕉国产线看观看网| 国产精品麻豆一区二区三区| 亚洲精品国产精品乱码不99按摩| www日本高清| 在线播放中文字幕一区| 特级西西444www高清大视频| 精品人伦一区二区三区蜜桃免费| 欧美爱爱小视频| 亚洲欧洲日本在线| 青青草自拍偷拍| 国产精品网友自拍| 中文字幕av久久爽一区| 国产亚洲一区字幕| www.黄色在线| 国产日韩亚洲欧美综合| 中文字幕免费高清| 久久亚洲综合色一区二区三区| 日本一区二区在线免费观看| 东方欧美亚洲色图在线| 久久发布国产伦子伦精品| 国产在线精品一区二区夜色| 91小视频在线播放| 国产真实乱对白精彩久久| 99九九99九九九99九他书对| 精品一区二区免费| 日韩精品视频网址| 国产成人精品亚洲777人妖| 能看毛片的网站| 国产91精品久久久久久久网曝门 | 一级黄色录像免费看| 66国产精品| 国产小视频免费| 99pao成人国产永久免费视频| 人人干视频在线| 一本久道久久综合狠狠爱| 欧美日韩亚洲一| 日韩黄色小视频| 国产精品视频中文字幕| 国产一区欧美二区| 白丝校花扒腿让我c| 不卡一区二区在线| 大又大又粗又硬又爽少妇毛片 | v8888av| 国产欧美精品一区二区色综合朱莉| 人与嘼交av免费| 成人免费一区二区三区视频| 美女福利视频在线观看| 午夜免费久久看| 亚洲无码精品一区二区三区| 欧美日韩另类一区| 亚洲精品一区二区三区蜜桃| 亚洲美女av电影| 91在线观看| 欧美日韩不卡合集视频| 高清不卡亚洲| 亚洲精品欧美一区二区三区| 精品自拍偷拍| 色综合久久久久久久久五月| 欧美影院一区| 男女av免费观看| 国产一区二区三区四区五区入口 | 亚洲人成在线观看| 无遮挡的视频在线观看 | 欧美男女交配| 国产一区二中文字幕在线看| 国产精品午夜av| 日韩不卡av| 亚洲小说区图片区| 国产精品一区二区小说| 成人黄色一级视频| 亚洲一级片在线播放| 亚洲国产精品久久久久婷婷884| 国模私拍一区二区| 亚洲第一区在线观看| 国产免费a∨片在线观看不卡| 欧美极品在线播放| 黄色成人小视频| 久久婷婷人人澡人人喊人人爽| 婷婷综合社区| 欧美韩国日本在线| 国产精品白丝jk黑袜喷水| www在线观看免费视频| 亚洲一区在线视频| 一区二区www| 亚洲欧美国产精品久久久久久久 | wwwwww欧美| 日本不卡视频在线观看| 久久精品女同亚洲女同13| 国产精品国产馆在线真实露脸| 青草视频在线观看免费| 日韩一二三四区| 在线免费黄色| 国产精品7m视频| 蜜桃一区av| 国产资源第一页| 精品亚洲免费视频| 亚洲综合第一区| 色婷婷综合久久久久中文| 亚洲奶汁xxxx哺乳期| 欧美刺激性大交免费视频| 色999韩欧美国产综合俺来也| 欧美一级二级三级九九九| 日韩一级大片| www.com日本| 亚洲黄色小视频| 99久久精品国产色欲| 日韩在线视频网站| 成人日韩在线观看| 欧美在线一二三区| 天堂久久久久va久久久久| 男男做爰猛烈叫床爽爽小说| 亚洲一区二区在线视频| 性网爆门事件集合av| 欧美乱妇40p| 日本在线视频一区二区三区| 少妇高潮流白浆| 国产一区二区免费在线| 农村妇女精品一区二区| 91精品蜜臀在线一区尤物| 欧美精品hd| 成人午夜在线观看| **女人18毛片一区二区| 天堂av.com| 亚洲美女在线国产| 亚洲毛片欧洲毛片国产一品色| 欧美激情国产精品| 国产一区二区三区亚洲| 伊人成色综合网| 久久九九国产精品| 又污又黄的网站| 欧美成人合集magnet| 日韩成人视屏| r级无码视频在线观看| www久久精品| 久久久久久亚洲av无码专区| 中文字幕视频在线免费欧美日韩综合在线看 | 国产一区二区三区在线观看免费| 三级影片在线看| 欧美成人一区二区三区片免费| 欧美1—12sexvideos| 国产自产精品| 日韩国产精品久久久久久亚洲| 日本少妇aaa| 日韩欧美卡一卡二| 春色校园综合激情亚洲| 青青成人在线| 国产一区二区三区蝌蚪| 久久精品视频日本| 国产丝袜精品第一页| 欧美系列精品| 2018中文字幕第一页| 国产亚洲精品aa| 国产精品色综合| 97av在线视频免费播放| 北条麻妃国产九九九精品小说| 亚洲第一区第二区第三区| 亚洲一本大道在线| 国产理论电影在线观看| 亚洲精品欧美日韩专区| 国产亚洲综合精品| 肉色超薄丝袜脚交69xx图片| 精品久久久久久无| 美女色狠狠久久| 精品无码国模私拍视频| 中文字幕精品在线不卡| 欧美一区二区三区黄片|