【FFH】AI作诗之httpRequest实战
【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实战相关推荐
- AI作诗,模仿周杰伦创作歌词-实战项目
点击上方"码农的后花园",选择"星标" 公众号 精选文章,第一时间送达 很久以来,我们都想让机器自己创作诗歌,当无数作家.编辑还没有抬起笔时,AI已经完成了数千 ...
- AI作诗:诗三百·人工智能诗歌写作平台
挺有意思的一个AI作诗网站,之前也用过几个作诗网站,但是感觉这个作出来的更有内味. 对于已经有人生成过的词句,结果返回的很快,对于生词,可能需要多等一会. 刚开始测试的时候还挺快,现在生成的有点慢了, ...
- AI作诗:深度学习应用演示平台
挺有意思的一个AI作诗网站,之前也用过几个作诗网站,但是感觉这个作出来的更有内味. 对于已经有人生成过的词句,结果返回的很快,对于生词,可能需要多等一会. 刚开始测试的时候还挺快,现在生成的有点慢了, ...
- 不一样的七夕礼:最美情话+AI 作诗
作者 | 月小水长 来源 | 月小水长(ID:inspurer) 七夕到了,程序猿同志们都在想怎么送女朋友礼物,送包包?太俗气!送口红?没有新意! 没有点子的同志们不妨看看这篇,满满的干货:LDA 主 ...
- 【AI作诗】主流平台介绍+自主搭建
诗歌总是属于文人的浪漫,但随着技术的发展,理科生文艺起来,也就没文科生什么事了(开玩笑的).通过本篇文章,笔者将给大家介绍主流的AI诗歌创作平台及如何自己搭建,以供大家学习参考. 技术的进步是为了更好 ...
- 腾讯国风AI虚拟人学会作诗书法,背靠开源模型SongNet
5月21日,腾讯AI虚拟人艾灵再秀出新技能,首次展示AI作诗.AI书法等国风才艺,并与青年歌手白举纲跨次元合作,共同演唱国风新歌<百川千仞>. AI"艾灵"诞生于腾讯A ...
- 从唱歌到作诗书法,腾讯AI Lab虚拟人艾灵技能再进化
转载自:腾讯AI实验室 5月21日,腾讯 AI Lab 虚拟人艾灵再秀出新技能,首次展示AI作诗.AI书法等国风才艺,并与青年歌手白举纲跨次元合作,共同演唱国风新歌<百川千仞>. AI&q ...
- 清华团队让 AI 写诗“更上一层楼”,诗歌图灵测试迷惑近半数玩家
作者 | 黄珊 来源 | 数据实战派 比特币 外挖无穷洞,机神犹未休. 卡中窥币影,池里验沙流. 屡载吸金主,孤深渍盗求. 方知区块链,本是古来游. 这首诗歌来自一支清华团队开发的古诗 AI.它的创作 ...
- prompt learning受控文本生成作诗
prompt learning是什么 小样本学习难点在于: 1.数据量较少,比如10-16个样本 2.fintune后接后置任务模型层,参数比较多 可以把这个问题看成是矩阵求解时候的,函数参数比较多. ...
最新文章
- mysql 存储引擎 介绍
- Scrapy实例1-爬取天气预报存储到Json
- 【译】Build Knowledge Graph from unstructured corpus using Machine Learning
- Using Markov Chains for Android Malware Detection
- ubuntu检查端口是否开启_Ubuntu默认防火墙安装、启用、配置、端口、查看状态相关信息...
- zabbix简单介绍(1)
- 在数据库系统中遇见存储技术飞跃会怎样?
- Centos5.11 //IP/phpmyadmin 远程无法登入
- ros怎么跑小车_ROS坐标转换讲解 | Autolabor Simulation
- Docker详解(三)——Docker安装与部署
- 大数据ETL开发之图解Kettle工具(入门到精通)
- 计算机wifi无法打开,mac电脑wifi无法打开怎么解决-mac电脑wifi无法打开解决教程 - 河东软件园...
- matlab 展开计算公式,钣金下料展开计算公式
- python 压缩 解压文件
- Python爬取天堂网图片
- 50漂亮的后台管理界面模板
- 2019届网易云音乐前端实习生电面心得
- 坐标北京,8大区域,上百家知名公司推荐给你
- 使用MySQL的binlog日志恢复误删数据
- 严禁使用计算机存储,处理,传输涉密信息,严禁使用非涉密计算机存储、处理、传输涉密信息。()...