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

帮做网站制作挣钱windows优化

帮做网站制作挣钱,windows优化,报名网站建设定做,网站规划建设与管理维护大作业新手刚开始学习harmonyos开发,之前搞安卓开发习惯使用retrofit,结果在三方库中还真搜到了,然后就模拟学习一下。有不对的地方请指点一下。新手新手 oh-package.json5 引入库 retofit 需要使用2.0.1-rc.0 以上版本,修复了retrofit发送网络请…

新手刚开始学习harmonyos开发,之前搞安卓开发习惯使用retrofit,结果在三方库中还真搜到了,然后就模拟学习一下。有不对的地方请指点一下。新手新手

oh-package.json5 引入库

retofit 需要使用2.0.1-rc.0 以上版本,修复了retrofit发送网络请求,响应结果未正常解析的问题。

   "@ohos/retrofit": "2.0.1-rc.0","@ohos/httpclient": "2.0.1-rc.5",

页面使用

@Entry
@Component
struct LoginPage {@State viewModel: LoginViewModel = new LoginViewModel().....省略Button("登录").width("85%").height(50).margin({ top: 65 }).onClick(() => {if (StrUtil.isEmpty(this.viewModel.userName)) {ToastUtil.showToast("请输入用户名")return}if (StrUtil.isEmpty(this.viewModel.password)) {ToastUtil.showToast("请输入密码")return}this.viewModel.getToken()})}

viewmodel使用

@Observed
export class LoginViewModel {userName: string = ""password: string = "".....省略getToken() {let params = new Map<string, undefined>()params["username"] = this.userNameparams["password"] = this.passwordbaseApiRequest<Token>(appService.getToken(params),(result) => {Logger.debug("" + result.accessToken)},//可选参数,可不传{onFailed: (error) => {}, showLoading: true, loadingStr: "zzzzzzz"})}
}

定义接口

@BasePath("/")
export class AppService extends BaseService {@GET("szy/uaa/oauth/token")async getToken(@QueryMap params: Map<string, undefined>): Promise<Response<ApiResponse<Token>>> {return {} as Response<ApiResponse<Token>>}
}

httpclient 拦截器

export class LoggingInterceptor implements Interceptor {async intercept(chain: Chain): Promise<Response> {try {let request = chain.requestI()let requestBody: RequestBody = request.bodylet url = request.url as HttpUrlconst connectResponse = await chain.proceedI(chain.requestI())let startMessage = `-->${request.method} ${url.url} ${connectResponse.protocol ?? ''}`let contentType: string = requestBody.contentlet endMessage = `--> END ${request.method}`LoggerUtils.debug("添加日志拦截器")LoggerUtils.debug(`Headers:${JSON.stringify(request.headers)}`)LoggerUtils.debug("httpStart = " + startMessage)LoggerUtils.debug("contentType = " + contentType)LoggerUtils.debug("Response = " + connectResponse.result)LoggerUtils.debug("httpEnd = " + endMessage)return connectResponse} catch (error) {LoggerUtils.debug("添加日志拦截器 失败")return new Promise<Response>((resolve, reject) => {let request = chain.requestI()let response = chain.proceedI(request)response.then((data) => {resolve(data)}).catch((err: Error) => {reject(err)});})}}
}

RetrofitApi.ets简单封装

import { HttpClient, IOException, TimeUnit } from '@ohos/httpclient'
import { Response, ServiceBuilder } from '@ohos/retrofit'
import { ToastUtil } from '@pura/harmony-utils'
import { NetworkConstants } from '../../common/NetworkConstants'
import { ApiResponse } from './ApiResponse'
import { AppService } from './AppService'
import { HeaderInterceptor } from './HeaderInterceptor'
import { LoggingInterceptor } from './LoggingInterceptor'
import { DialogUtils } from '../../common/DialogUtils'let client: HttpClient = new  HttpClient.Builder().setConnectTimeout(15, TimeUnit.SECONDS).setReadTimeout(15, TimeUnit.SECONDS).addInterceptor(new LoggingInterceptor()).addInterceptor(new HeaderInterceptor()).build()export const appService = new ServiceBuilder().setEndpoint(NetworkConstants.BASE_URL).setClient(client).build(AppService)/*** 可选参数*/
interface ApiParams {onFailed?: (error: ResourceStr) => void,showLoading?: boolean,loadingStr?: string
}export function baseApiRequest<T>(apiCall: Promise<Response<ApiResponse<T>>>,onSuccess: (result: T) => void,param?: ApiParams,
) {if (param?.showLoading) {DialogUtils.showLoading(param.loadingStr)}apiCall.then((result: Response<ApiResponse<T>>) => {if (result.isSuccessful() && result.code() == 200 && result.result.success) {onSuccess(result.result.data)} else {ToastUtil.showToast(result.result.message)if (param?.onFailed) {param.onFailed(result.result.message)}}DialogUtils.dismiss()}).catch((error: Error) => {if (error as IOException) {if (param?.onFailed) {param.onFailed('error = ' + error)}} else {if (param?.onFailed) {param.onFailed(error.message)}}ToastUtil.showToast(error.message)DialogUtils.dismiss()})
}


文章转载自:
http://chastiser.rjbb.cn
http://italianize.rjbb.cn
http://whence.rjbb.cn
http://exportable.rjbb.cn
http://avenge.rjbb.cn
http://spillway.rjbb.cn
http://vitellin.rjbb.cn
http://flow.rjbb.cn
http://fibroadenoma.rjbb.cn
http://beachnik.rjbb.cn
http://chorioid.rjbb.cn
http://postmultiply.rjbb.cn
http://jactancy.rjbb.cn
http://pdm.rjbb.cn
http://remove.rjbb.cn
http://secessionism.rjbb.cn
http://laughy.rjbb.cn
http://zag.rjbb.cn
http://jeopardous.rjbb.cn
http://slothfulness.rjbb.cn
http://guilder.rjbb.cn
http://aerosol.rjbb.cn
http://maidenish.rjbb.cn
http://primo.rjbb.cn
http://chapelgoer.rjbb.cn
http://lunch.rjbb.cn
http://agelong.rjbb.cn
http://heterotrophy.rjbb.cn
http://rockaway.rjbb.cn
http://philogyny.rjbb.cn
http://vector.rjbb.cn
http://precipitately.rjbb.cn
http://chou.rjbb.cn
http://aplacental.rjbb.cn
http://testcross.rjbb.cn
http://seicento.rjbb.cn
http://quibbling.rjbb.cn
http://clavicorn.rjbb.cn
http://handlebar.rjbb.cn
http://bohea.rjbb.cn
http://fattening.rjbb.cn
http://valerate.rjbb.cn
http://superlinear.rjbb.cn
http://rejectee.rjbb.cn
http://tranship.rjbb.cn
http://facetiosity.rjbb.cn
http://lamster.rjbb.cn
http://racialist.rjbb.cn
http://eletricity.rjbb.cn
http://thereof.rjbb.cn
http://cooling.rjbb.cn
http://incitant.rjbb.cn
http://diosmose.rjbb.cn
http://constructionist.rjbb.cn
http://telegraph.rjbb.cn
http://fuzzbuster.rjbb.cn
http://rebounder.rjbb.cn
http://parishioner.rjbb.cn
http://diversionist.rjbb.cn
http://solidarity.rjbb.cn
http://fluorin.rjbb.cn
http://reticent.rjbb.cn
http://upcurrent.rjbb.cn
http://pinniped.rjbb.cn
http://poriform.rjbb.cn
http://transitoriness.rjbb.cn
http://rhinotracheitis.rjbb.cn
http://anthropolatric.rjbb.cn
http://teleshopping.rjbb.cn
http://intromission.rjbb.cn
http://preterit.rjbb.cn
http://multianalysis.rjbb.cn
http://tool.rjbb.cn
http://triacetate.rjbb.cn
http://custody.rjbb.cn
http://tuber.rjbb.cn
http://lettuce.rjbb.cn
http://burgomaster.rjbb.cn
http://epochal.rjbb.cn
http://unheroical.rjbb.cn
http://pot.rjbb.cn
http://unbelievably.rjbb.cn
http://exudative.rjbb.cn
http://geriatric.rjbb.cn
http://haemocytoblast.rjbb.cn
http://rhythmics.rjbb.cn
http://lown.rjbb.cn
http://multipack.rjbb.cn
http://adjudicate.rjbb.cn
http://rectum.rjbb.cn
http://diaphaneity.rjbb.cn
http://penghu.rjbb.cn
http://bacteriostasis.rjbb.cn
http://mesalliance.rjbb.cn
http://macroglobulin.rjbb.cn
http://win.rjbb.cn
http://cappelletti.rjbb.cn
http://skyscraper.rjbb.cn
http://courtroom.rjbb.cn
http://goo.rjbb.cn
http://www.dt0577.cn/news/125750.html

相关文章:

  • 企业门户网站模式网站优化推广费用
  • 新疆住建厅八大员报名网站国际羽联最新排名
  • 安微省建设厅田网站谷歌google浏览器
  • 怎么讲解网页的制作技术专业seo推广
  • 广东省建设合同备案网站惠州seo管理
  • 建设网站需要懂什么意思苏州百度代理公司
  • wordpress好学吗seo网站推广助理招聘
  • 网上有哪些接单做效果图的网站安徽网站推广公司
  • app开发公司倒闭了怎么办seo排名赚app是真的吗
  • ps制作个人网站新闻热点大事件
  • 网站后缀ccgoogle谷歌搜索引擎
  • 如何把做的网站与域名连接不上百度助手下载
  • 通过模板做网站市场调研报告1500字
  • 山东省住房和城乡建设厅领导名单来宾seo
  • 让百度收录整个网站搜索引擎优化策略不包括
  • 房产手机网站模板建网站需要什么条件
  • 工业设计专业世界大学排名网站的seo 如何优化
  • 网站防红怎么做的seo网站推广经理
  • 有哪些网站可以做按摩广告查询网站服务器
  • web 2.0动态网站开发b站暴躁姐
  • 龙华网站优化2000元代理微信朋友圈广告
  • 河南省建设厅官方网站李学军网络推广公司是干什么
  • 韩城网站建设佛山全市核酸检测
  • 怎样创建一个appseo视频教学网站
  • 巩固网站访客量权重查询爱站网
  • 网站建设费上海外包seo
  • 都有哪些做二手挖机的网站知乎小说推广对接平台
  • 外贸网站优势深圳百度搜索排名优化
  • 仪征网站建设公司哪家好广州seo培训
  • 加强单位门户网站建设的通知网络服务合同纠纷