【FFH】AI作诗之httpRequest实战

  • 前言
  • Demo展示
  • http接口常识补充
    • 内容类型(Content-Type)
    • 响应状态码(ResponseCode)
  • 代码实现
    • ①申请网络权限
    • ② 导入http模块
    • ③ 创建HttpRequest对象
    • ④ 编写request接口
    • ⑤ 藏头诗部分完整代码

前言

​ 最近在一个网课上看到了一个AI作诗的接口,因为之前的fetch接口已经不再维护了,所以我就借这个机会想试试鸿蒙的http接口。接下来会重新复习一下http请求的一些基本知识,并且跟大家一起实现一个简单的AI写诗的demo实际操练一下鸿蒙的http请求。

Demo展示

http接口常识补充

内容类型(Content-Type)

内容类型(Content-Type)的作用就是告诉客户端返回内容的内容类型,各种Content-Type对应的格式如下:

Content-Type 对应格式
text/html HTML格式
text/plain 纯文本格式
text/xml XML格式
image/gif gif图片格式
image/jpeg jpg图片格式
image/png png图片格式
application/xhtml+xml XHTML格式
application/xml XML数据格式
application/atom+xml Atom XML聚合格式
application/json JSON数据格式
application/pdf pdf格式
application/msword Word文档格式
application/octet-stream 二进制流数据(如常见的文件下载)
application/x-www-form-urlencoded form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)
multipart/form-data 需要在表单中进行文件上传时,就需要使用该格式

响应状态码(ResponseCode)

每次接口请求,服务器都会返回一个响应状态码,每一个状态码都有不同的意思。

名称 说明
OK 200 请求成功。一般用于GET与POST请求。
CREATED 201 已创建。成功请求并创建了新的资源。
ACCEPTED 202 已接受。已经接受请求,但未处理完成。
NOT_AUTHORITATIVE 203 非授权信息。请求成功。
NO_CONTENT 204 无内容。服务器成功处理,但未返回内容。
RESET 205 重置内容。
PARTIAL 206 部分内容。服务器成功处理了部分GET请求。
MULT_CHOICE 300 多种选择。
MOVED_PERM 301 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。
MOVED_TEMP 302 临时移动。
SEE_OTHER 303 查看其它地址。
NOT_MODIFIED 304 未修改。
USE_PROXY 305 使用代理。
BAD_REQUEST 400 客户端请求的语法错误,服务器无法理解。
UNAUTHORIZED 401 请求要求用户的身份认证。
PAYMENT_REQUIRED 402 保留,将来使用。
FORBIDDEN 403 服务器理解请求客户端的请求,但是拒绝执行此请求。
NOT_FOUND 404 服务器无法根据客户端的请求找到资源(网页)。
BAD_METHOD 405 客户端请求中的方法被禁止。
NOT_ACCEPTABLE 406 服务器无法根据客户端请求的内容特性完成请求。
PROXY_AUTH 407 请求要求代理的身份认证。
CLIENT_TIMEOUT 408 请求时间过长,超时。
CONFLICT 409 服务器完成客户端的PUT请求是可能返回此代码,服务器处理请求时发生了冲突。
GONE 410 客户端请求的资源已经不存在。
LENGTH_REQUIRED 411 服务器无法处理客户端发送的不带Content-Length的请求信息。
PRECON_FAILED 412 客户端请求信息的先决条件错误。
ENTITY_TOO_LARGE 413 由于请求的实体过大,服务器无法处理,因此拒绝请求。
REQ_TOO_LONG 414 请求的URI过长(URI通常为网址),服务器无法处理。
UNSUPPORTED_TYPE 415 服务器无法处理请求的格式。
INTERNAL_ERROR 500 服务器内部错误,无法完成请求。
NOT_IMPLEMENTED 501 服务器不支持请求的功能,无法完成请求。
BAD_GATEWAY 502 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求。
UNAVAILABLE 503 由于超载或系统维护,服务器暂时的无法处理客户端的请求。
GATEWAY_TIMEOUT 504 充当网关或代理的服务器,未及时从远端服务器获取请求。
VERSION 505 服务器请求的HTTP协议的版本。

代码实现

①申请网络权限

在config.json文件里面注册网络权限,该权限允许程序打开网络套接字,进行网络连接。

"reqPermissions": [{"name": "ohos.permission.INTERNET"}
]

② 导入http模块

import http from '@ohos.net.http';

③ 创建HttpRequest对象

这里调用createHttp()创建一个HttpRequest对象后,要注意每一个httpRequest对应一个http请求任务,不可复用,也就是说每发起一次网络请求,都要创建一个新的HttpRequest对象,当执行完该次请求之后,就会自动销毁该对象。

let httpRequest = http.createHttp();

④ 编写request接口

        httpRequest.request("https://py.myie9.com/cangtoutest/"+this.poemHead,{header: {'Content-Type': 'text/plain'},readTimeout: 10000,connectTimeout: 10000}, (err, data) => {if (!err) {console.info("xxx--- "+JSON.stringify(data))this.aiResult = data.result;} else {console.info('xxx--- error:' + JSON.stringify(err));}})

至此就完成了一次简单的http请求啦~

后面还可以对请求进行封装,暴露出需要变更的几个参数即可,比如method,Content-Type等等,后面再找时间写一篇http请求封装的博客。

⑤ 藏头诗部分完整代码

js代码:

import http from '@ohos.net.http';
import router from '@system.router';
// 每一个httpRequest对应一个http请求任务,不可复用
let httpRequest = http.createHttp();export default {data: {poemHead:"123",aiResult:"请在上方输入符合要求的字段"},onInit() {},back(){router.back()},hideHeadPoem() {httpRequest = http.createHttp();httpRequest.request("https://py.myie9.com/cangtoutest/"+this.poemHead,{header: {'Content-Type': 'text/plain'},readTimeout: 10000,connectTimeout: 10000}, (err, data) => {if (!err) {console.info("xxx--- "+JSON.stringify(data))this.aiResult = data.result;} else {console.info('xxx--- error:' + JSON.stringify(err));}})},check1(e){console.log("xxx---"+JSON.stringify(e.value))this.poemHead = e.value.poemHeadthis.hideHeadPoem();}
}

css代码

.container {display: flex;flex-direction: column;justify-content: center;align-items: center;left: 0px;top: 0px;width: 100%;height: 100%;
}.title {font-size: 60px;text-align: center;width: 100%;height: 40%;margin: 10px;
}
.display{justify-content: center;align-items: center;width: 80%;height: 35%;border-radius: 20px;background-color: #fff5f1f1;opacity: 0.8;box-shadow: 10px 10px 5px #888888;
}
.subButton{width: 250px;margin-left: 25%;background-color:  #ffa5552f;margin-top: 5%;
}
.subButton2{width: 250px;height: 70px;margin-left: 25%;background-color:  #ffa5552f;margin-top: 2%;
}

hml代码

<div class="container"><form class="container" onsubmit='check1'><input style="width:80%;height:10%;margin-top: 15%;" type="text" placeholder="请输入要生成藏头诗的句子" name='poemHead'>    </input><div class="display" style="margin-top: 15%;"><text style="margin: 40px;font-size: 38px;">{{aiResult}}</text></div><input class="subButton" type='submit'>生成藏头诗</input><button class="subButton2" onclick="back">返回</button></form><image src="../../common/123.png" style="z-index: -1; position: fixed;width: 100%;height: 100%;">    </image></div>

【FFH】AI作诗之httpRequest实战相关推荐

  1. AI作诗,模仿周杰伦创作歌词-实战项目

    点击上方"码农的后花园",选择"星标" 公众号 精选文章,第一时间送达 很久以来,我们都想让机器自己创作诗歌,当无数作家.编辑还没有抬起笔时,AI已经完成了数千 ...

  2. AI作诗:诗三百·人工智能诗歌写作平台

    挺有意思的一个AI作诗网站,之前也用过几个作诗网站,但是感觉这个作出来的更有内味. 对于已经有人生成过的词句,结果返回的很快,对于生词,可能需要多等一会. 刚开始测试的时候还挺快,现在生成的有点慢了, ...

  3. AI作诗:深度学习应用演示平台

    挺有意思的一个AI作诗网站,之前也用过几个作诗网站,但是感觉这个作出来的更有内味. 对于已经有人生成过的词句,结果返回的很快,对于生词,可能需要多等一会. 刚开始测试的时候还挺快,现在生成的有点慢了, ...

  4. 不一样的七夕礼:最美情话+AI 作诗

    作者 | 月小水长 来源 | 月小水长(ID:inspurer) 七夕到了,程序猿同志们都在想怎么送女朋友礼物,送包包?太俗气!送口红?没有新意! 没有点子的同志们不妨看看这篇,满满的干货:LDA 主 ...

  5. 【AI作诗】主流平台介绍+自主搭建

    诗歌总是属于文人的浪漫,但随着技术的发展,理科生文艺起来,也就没文科生什么事了(开玩笑的).通过本篇文章,笔者将给大家介绍主流的AI诗歌创作平台及如何自己搭建,以供大家学习参考. 技术的进步是为了更好 ...

  6. 腾讯国风AI虚拟人学会作诗书法,背靠开源模型SongNet

    5月21日,腾讯AI虚拟人艾灵再秀出新技能,首次展示AI作诗.AI书法等国风才艺,并与青年歌手白举纲跨次元合作,共同演唱国风新歌<百川千仞>. AI"艾灵"诞生于腾讯A ...

  7. 从唱歌到作诗书法,腾讯AI Lab虚拟人艾灵技能再进化

    转载自:腾讯AI实验室 5月21日,腾讯 AI Lab 虚拟人艾灵再秀出新技能,首次展示AI作诗.AI书法等国风才艺,并与青年歌手白举纲跨次元合作,共同演唱国风新歌<百川千仞>. AI&q ...

  8. 清华团队让 AI 写诗“更上一层楼”,诗歌图灵测试迷惑近半数玩家

    作者 | 黄珊 来源 | 数据实战派 比特币 外挖无穷洞,机神犹未休. 卡中窥币影,池里验沙流. 屡载吸金主,孤深渍盗求. 方知区块链,本是古来游. 这首诗歌来自一支清华团队开发的古诗 AI.它的创作 ...

  9. prompt learning受控文本生成作诗

    prompt learning是什么 小样本学习难点在于: 1.数据量较少,比如10-16个样本 2.fintune后接后置任务模型层,参数比较多 可以把这个问题看成是矩阵求解时候的,函数参数比较多. ...

最新文章

  1. mysql 存储引擎 介绍
  2. Scrapy实例1-爬取天气预报存储到Json
  3. 【译】Build Knowledge Graph from unstructured corpus using Machine Learning
  4. Using Markov Chains for Android Malware Detection
  5. ubuntu检查端口是否开启_Ubuntu默认防火墙安装、启用、配置、端口、查看状态相关信息...
  6. zabbix简单介绍(1)
  7. 在数据库系统中遇见存储技术飞跃会怎样?
  8. Centos5.11 //IP/phpmyadmin 远程无法登入
  9. ros怎么跑小车_ROS坐标转换讲解 | Autolabor Simulation
  10. Docker详解(三)——Docker安装与部署
  11. 大数据ETL开发之图解Kettle工具(入门到精通)
  12. 计算机wifi无法打开,mac电脑wifi无法打开怎么解决-mac电脑wifi无法打开解决教程 - 河东软件园...
  13. matlab 展开计算公式,钣金下料展开计算公式
  14. python 压缩 解压文件
  15. Python爬取天堂网图片
  16. 50漂亮的后台管理界面模板
  17. 2019届网易云音乐前端实习生电面心得
  18. 坐标北京,8大区域,上百家知名公司推荐给你
  19. 使用MySQL的binlog日志恢复误删数据
  20. 严禁使用计算机存储,处理,传输涉密信息,严禁使用非涉密计算机存储、处理、传输涉密信息。()...

热门文章

  1. 赣榆高中2021高考成绩查询,2019年赣榆高考各校的成绩情况
  2. 石器时代文件格式分析
  3. 模拟Vue响应式原理
  4. 如何在表格里修改数据
  5. android状态机是线程么,[Android] 状态机 StateMachine 源码剖析
  6. python高频词统计_python几万条微博高频词分析
  7. 【IT小知识】扩容是什么意思?扩容的近义词有哪些?
  8. Bootstrap、栅格系统布局
  9. html 标签(一)10个常用标签以及块元素行内元素、
  10. 《勋伯格和声学》读书笔记(七):结束与终止式,伪终止式,以及终止式中的六四和弦