当前位置: 首页 > news >正文

网站功能模块设计自己做响应式网站难吗

网站功能模块设计,自己做响应式网站难吗,长春网长春网站建设络推广,中牟网站推广目录概述简介HTTP通信接口说明报文结构常见请求方法状态码发送HTTP数据请求基本流程数据请求概述 简介 HTTP一般采用浏览器/服务器架构进行通信,同样也是一个应用层协议。它基于运输层TCP协议传输数据,并采用了简单的请求-响应方式进行交互&#xff0c…

目录

  • 概述
    • 简介
    • HTTP通信接口说明
    • 报文结构
    • 常见请求方法
    • 状态码
  • 发送HTTP数据请求
    • 基本流程
    • 数据请求

概述

简介

HTTP一般采用浏览器/服务器架构进行通信,同样也是一个应用层协议。它基于运输层TCP协议传输数据,并采用了简单的请求-响应方式进行交互,即客户端根据自身需求将相应的请求发送至服务器,而服务器只能根据接收的客户端请求发送响应数据。另外,HTTP是一种无状态协议,不会在服务器端保留客户端状态,因此,HTTP的模型非常简单,便于开发,部署。

HTTP通信接口说明

接口作用
createHttp()创建一个HTTP请求
request根据URL网址,发起HTTP网路请求
destroy中断请求任务
on(type: ‘headersReceive’)订阅HTTP Response Header事件
off(type: ‘headersReceive’)取消订阅HTTP Response Header事件

报文结构

HTTP通过统一资源定位器(URL)指定所需资源位置一个HTTP事务包括来自客户端的请求,以及服务器对请求的响应。双方的通信以HTTP报文的形式进行交互从客户端发送到服务器的报文称为请求报文,而从服务器到客户端的报文称为响应报文。请求报文与响应报文的格式十分相似,它们都包括三部分。

  • 请求行(响应报文中的状态行):提示是何种请求或响应状态。
  • 通用信息头:零或多个紧挨着请求行/状态行的域。每个域由一对名字和数值构成,并由冒号“:”隔开。通用信息头由一个空行结束。
  • 包体:在请求报文中,包体中包含客户端发送给服务器的数据,而在响应报文中,携带服务器发送给客户端的响应数据。与请求行/状态行及通用信息头不同,包体可以是任何形式的二进制数据。

常见请求方法

方法作用
GET请求指定的页面信息,并返回实体主体
HEAD类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头
POST向指定资源提交数据并处理请求(例如提交表单或者上传文件)。数据被包含在请求体中,POST请求可能会导致新的资源的建立或已有的资源的修改。
PUT使用从客户端向服务器传送的数据取代指定的文档内容
DELETE请求服务器删除指定的页面
CONNECTHTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器
OPTIONS允许客户端查看服务器的性能
TRACE回显服务器收到的请求,主要用于测试或诊断
PATCH是对PUT方法的补充,用来对已知资源进行局部更新

状态码

当浏览者访问一个网页时,浏览者的浏览器会向网页所在的服务器发出请求,当浏览器接受并显示网页时,此网页所在的服务器会返回一个包含HTTP状态码的信息头用以响应浏览器的请求。
下面是常见的HTTP状态码

  • 200:请求成功
  • 301:资源(网页等)被永久转移到其他URL
  • 404:请求的资源(网页等)不存在
  • 500:内部服务器错误

发送HTTP数据请求

基本流程

  • 导入HTTP模块
import {http} from '@kit.NetworkKit'
import { BusinessError} from '@kit.BasicServicesKit'
  • 创建httpRequest对象。需要注意的是,每个httpRequest对象对应一个HTTP请求任务,不可复用。
 let httpRequest = http.createHttp();
  • 通过httpRequest对象发起HTTP请求。
httpRequest.request(//填写http请求的URL地址,可以带参数也可以不带。url地址需要开发者自定义,请求的参数在extraData中指定TARGET_URL,{header: {'content-Type': 'application/json'},extraData: 'data to send',expectDataType: http.HttpDataType.STRING, //可选,指定返回数据据的类型usingCache: true,}, (err: BusinessError, data: http.HttpResponse) => {// ...})
  • 取消订阅HTTP响应头事件
    调用该对象的off()方法,取消订阅HTTP响应头事件。
httpRequest.off('headersReceive');
  • 调用destroy()方法销毁
    当该请求使用完毕时,调用destroy()方法销毁。
httpRequest.destroy();

数据请求

import {http} from '@kit.NetworkKit'
import { BusinessError} from '@kit.BasicServicesKit'
import {common} from '@kit.AbilityKit'
import Logger from '../common/Logger';
import { promptAction } from '@kit.ArkUI';const LOG_TAG: string = '[Sample_HttpRequestDemo]';
const TARGET_URL: string = '';
enum ComponentId {NORMAL_RESULT_ID = 'normalReqResult',STREAM_RESULT_ID = 'streamReqResult',HTTP_BUTTON = 'HttpButton',STREAM_HTTP_BUTTON = 'StreamHttpButton',HTTP_TITLE = 'HttpTitleId'
};@Entry
@Component
struct Index {@State normalReqRequest: ResourceStr = '';@State ReqResult: ResourceStr = ''build() {Column() {Text($r('app.string.HTTP_Request_Example')).fontSize(20).id(ComponentId.HTTP_TITLE).margin({bottom: 20})Button($r('app.string.HTTP_Request_Button')).onClick(() => {this.sendHttpRequest();}).width('80%').height(50).margin({top: 20}).backgroundColor(Color.Blue).fontColor(Color.White).fontSize(20).id(ComponentId.HTTP_BUTTON)}.height('100%').width('100%')}private sendHttpRequest() {this.normalReqRequest = $r('app.string.testing')let httpRequest = http.createHttp();httpRequest.on('headersReceive', (header) => {Logger.info(`${LOG_TAG} header: ${JSON.stringify(header)}`);})httpRequest.request(//填写http请求的URL地址,可以带参数也可以不带。url地址需要开发者自定义,请求的参数在extraData中指定TARGET_URL,{header: {'content-Type': 'application/json'},extraData: 'data to send',expectDataType: http.HttpDataType.STRING, //可选,指定返回数据据的类型usingCache: true,}, (err: BusinessError, data: http.HttpResponse) => {if (!err) {this.normalReqRequest = $r('app.string.httpSendSuccess');promptAction.showToast({message: this.normalReqRequest,duration: 4000,bottom: 300})Logger.info(`${LOG_TAG} Result: ${JSON.stringify(data.result)}`);Logger.info(`${LOG_TAG} code: ${JSON.stringify(data.responseCode)}`);Logger.info(`${LOG_TAG} header: ${JSON.stringify(data.header)}`);Logger.info(`${LOG_TAG} cookies: ${JSON.stringify(data.cookies)}`);httpRequest.destroy();} else {this.normalReqRequest = 'error:' + JSON.stringify(err);promptAction.showToast({message: this.normalReqRequest,duration: 4000, // 持续时间bottom: 300 // 与底间隔});Logger.error(`${LOG_TAG} error: ${JSON.stringify(err)}`);// 取消订阅HTTP响应头事件httpRequest.off('headersReceive');// 当该请求使用完毕时,调用destroy方法主动销毁httpRequest.destroy();}})}
}

string.json

{"string": [{"name": "module_desc","value": "module description"},{"name": "EntryAbility_desc","value": "description"},{"name": "EntryAbility_label","value": "HTTP_case"},{"name": "HTTP_Request_Button","value": "HTTP_Request_Button"},{"name": "HTTP_Request_Example","value": "HTTP_Request"},{"name": "Stream_HTTP_Request_Button","value": "Stream_HTTP_Request_Button"},{"name": "testSuccess","value": "httpFlowSendSuccess"},{"name": "testFail","value": "Faliure"},{"name": "testing","value": "Testing"},{"name": "httpSendSuccess","value": "httpSendSuccess"},{"name": "grant_internet","value": "grant_internet"}]
}
http://www.dtcms.com/a/440127.html

相关文章:

  • 网站分析报告范文网站建设怎么寻找客户
  • 互联网公司怎么找网站建设客户wordpress 子菜单项
  • wordpress网站实现微信登录wordpress嵌入淘宝商品
  • 长沙有哪些网站建设公司好罗湖做网站的公司哪家好
  • 学做网站需要学什么杭州企业建站程序
  • 单页面的网站模板网络推广内容策划
  • 象山做网站三个字公司名字聚财
  • 张店制作网站最好的小说网站排名
  • 建设银行网站怎么开通手机通知做打井宣传广告找什么网站
  • PPT实现颜色复刻的方式方法
  • 手机版网站建设价格织梦个人网站模板
  • 营销型企业网站分个人网站源代码下载
  • 大模型-显存优化策略篇
  • 网站系统修改字体设计欣赏网站
  • 网站制作软件排名沙县建设局网站
  • 杭州一起做网站搬家网站怎么做
  • 国外网站流量查询苏州住房建设建局官方网站
  • 装饰公司做网站免费域名注册查询入口
  • 泰安网站开发seo好学吗
  • 酒店协会网站集静态模板深圳成豪设计
  • 网站首页按钮图片注册公司银行开户需要多少钱
  • 上海网站建设网站制wordpress按颜色搜索
  • 网站为什么要维护如何做一个购物网站
  • LeetCode 105. 从前序与中序遍历序列构造二叉树
  • 建设银行查余额网站邢台做网站公司排名
  • 深圳网站推广哪家好网站开发用什么编程语言
  • 资源交易网站代码把静态图片做成动态图片的软件
  • VRRP 和堆叠
  • 兖州网站建设公司网站制作方案去哪找
  • 酒店网站做的比较好的wordpress重定向漏洞