首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何获得经过改造的gziped xml文件?

如何获得经过改造的gziped xml文件?
EN

Stack Overflow用户
提问于 2016-09-14 08:29:20
回答 2查看 836关注 0票数 5

我正在使用翻新技术从网络上获取数据。现在我的问题是,我必须得到一个gziped文件,而retrofit需要一些我不知道如何正确实现的头文件。我对此进行了研究,但似乎没有什么帮助,因为大多数开发人员都在使用json。

这是我想要做的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  Retrofit retrofit = new Retrofit.Builder()
            .baseUrl("this is my baseurl")
            .addConverterFactory(SimpleXmlConverterFactory.create())
            .build();

和我的界面:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 public interface RestAPI {

    @GET("main_data1.gz")
    Call<Meritum> getData();

    @GET("terms1_EN.gz")
    Call<MeritumTerms> getTerms();

    @GET
    Call<GameResults> getResults(@Url String url);

}

所以我试图得到这个gziped文件,我总是得到这样的响应:

那么我需要添加什么才能让retrofit识别这个gzip文件呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-21 06:18:54

如果some1其他人有这个问题,他可以参考下面为我工作的链接

Retrofit: how to parse GZIP'd response without Content-Encoding: gzip header

票数 2
EN

Stack Overflow用户

发布于 2016-09-21 02:02:12

您不应该指定任何标头。

我构建了一个迷你服务器,它只响应以下压缩后的XML:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<task>
    <id link="http://url-to-link.com/task-id">1</id>
    <title>Retrofit XML Converter Blog Post</title>
    <description>Write blog post: XML Converter with Retrofit</description>
    <language>de-de</language>
</task>

运行服务器后,我可以使用curl获取XML

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl http://localhost:1337/ -v --compressed

我可以正确地看到XML,并且服务器使用以下标头进行响应:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Content-Encoding: gzip
Content-Type: application/xml; charset=utf-8

知道服务器会响应一个gzipped格式的响应,现在我试着让它在Android上工作:

我在build.gradle中使用了以下内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile ('com.squareup.retrofit2:converter-simplexml:2.1.0') {
    exclude group: 'xpp3', module: 'xpp3'
    exclude group: 'stax', module: 'stax-api'
    exclude group: 'stax', module: 'stax'
}

下面是改装后的实例配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(BASE_URL)
            .addConverterFactory(SimpleXmlConverterFactory.create())
            .build();

这是一个界面:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public interface MyApiEndpointInterface {
    @GET("/")
    Call<Task> getInfo();
}

这是我的Task类:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Root(name = "task")
public class Task {
    @Element(name = "id")
    private long id;

    @Element(name = "title")
    private String title;

    @Element(name = "description")
    private String description;

    @Element(name = "language")
    private String language;

    @Override
    public String toString() {
        return "Task{" +
                "id=" + id +
                ", title='" + title + '\'' +
                ", description='" + description + '\'' +
                ", language='" + language + '\'' +
                '}';
    }
}

我可以通过执行以下操作来确认它正在工作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
call.enqueue(new Callback<Task>() {
            @Override
            public void onResponse(Call<Task> call, Response<Task> response) {
                if (response.isSuccessful()) {
                    Log.d("MainActivity", response.body() + "");
                    ...
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39485830

复制
相关文章
js和jQuery获取img标签的src属性获取不到的解决方法
很多朋友可能遇到过,用 jQuery 获取 img 标签的 src 属性却获取不到的问题:
德顺
2019/11/12
18.9K0
cheerio获取outerHTML
cheerio作为node中jquery的替代品,拥有与jquery相似的api,甚至连详细文档的地址都指向api.jquery.com。但是由于执行环境的关系,并没有完全继承jquery中的方法。 对于这样的页面
全栈程序员站长
2022/06/28
1.3K0
PHP 正则表达式 获取富文本中的 img标签的src属性
前言 鄙人发现对于微信看看中的文章,一般都会有三张摘要图片; 所以想着可以直接提取富文本中的 <img>标签的 src 属性信息; 这样就可以在前台的 文章列表中展示三张图片(建议不要多了),吸
泥豆芽儿 MT
2020/09/15
6.8K0
PHP 正则表达式 获取富文本中的 img标签的src属性
NodeJs获取get/post传值
const http = require('http'); const routes = require('./module/routes') const url = require('url') const ejs = require('ejs') http.createServer((req, res) => { routes.static(req, res, './static') // 路由 let pathname = url.parse(req.url).pathname
明知山
2020/09/02
1.2K0
我用 nodejs 爬了一万多张小姐姐壁纸
哈喽,大家好,我是小马,为什么要下载这么多图片呢? 前几天使用 uniapp + uniCloud 免费部署了一个壁纸小程序,那么接下来就需要一些资源,给小程序填充内容。
狂奔滴小马
2022/03/30
5110
我用 nodejs 爬了一万多张小姐姐壁纸
nodejs cheerio模块提取html页面内容
本文给出使用一个用cheerio模块提取html文件中指定内容的例子,并说明具体步骤、涉及到的API、以及其它模块。 cheerio模块是一个类似jquery的模块,具有相似的API、功能,能够将一个网页解析为DOM,以及通过selector选择元素,设置、获取元素属性。
用户2176428
2022/05/11
3.3K0
nodejs cheerio模块提取html页面内容
Node爬虫:利用Node.js爬取网页图片的实用指南
在互联网时代,图片是信息传递和展示的重要组成部分,而提取网页中的图片数据对于一些项目和需求来说尤为重要。本文将详细介绍如何使用Node.js编写爬虫程序,实现网页图片的批量爬取,帮助您轻松获得所需的图片数据,并揭示一些实用技巧和注意事项。
用户614136809
2023/09/25
1.1K0
nodejs中npm常用命令
npm是一个node包管理和分发工具,已经成为了非官方的发布node模块(包)的标准。有了npm,可以很快的找到特定服务要使用的包,进行下载、安装以及管理已经安装的包。
陈不成i
2021/06/29
1.2K0
基于 nodejs 爬取大学城用户信息
nodejs + cheerio + request-promise + mongoose
4O4
2022/04/25
4920
基于 nodejs 爬取大学城用户信息
node爬虫 -- 网页图片
其实爬虫用很官方的语言来描述就是“自动化浏览网络程序”,我们不用手动去点击、去下载一些文章或者图片。大家或许用过抢票软件,其实就是不断地通过软件访问铁路官方的接口,达到抢票的效果。但是,这类抢票软件是违法的。
小蔚
2021/01/21
1.1K0
Vue学习笔记之Nodejs中的NPM使用
简单的说,npm就是JavaScript的包管理工具。类似Java语法中的maven,gradle,python中的pip。
Jetpropelledsnake21
2019/02/15
9920
利用 img 的 src 属性发起 get 请求踩坑记录
工作中,碰到一个需求,需要使用img标签的src属性发送一个get请求。原先的设想是,当请求发送成功之后,会触发img的onload回调,请求失败,则触发img的onerror回调。奈何理想很丰满,现实很骨感...
玖柒的小窝
2021/10/24
4.4K0
编写NodeJs脚本实现接口请求
node_mirror:https://npm.taobao.org/mirrors/node/
JQ实验室
2023/03/03
1.7K0
nodejs常用npm包
用户1141560
2017/12/26
2.4K0
img标签的src=""会引起的Page_Load多次执行
今天看见园子里有人因img的src为空导致session丢失,详情见http://www.cnblogs.com/kyneblog/archive/2009/06/11/1500999.html 以前一直没注意这个,所以晚上特地写了一段代码验证: Default.aspx后台代码: using System; using System.Web; using System.IO; namespace src { public partial class _Default : System.Web.UI.P
菩提树下的杨过
2018/01/23
1.4K0
XSS 攻击与防御
XSS(跨站脚本攻击,Cross-site scripting,它的简称并不是 CSS,因为这可能会与 CSS 层叠样式表重名)是一种常见的 web 安全问题。XSS 攻击手段主要是 “HTML 注入”,用户的数据被当成了 HTML 代码一部分来执行。
多云转晴
2020/04/27
3.9K0
基于Node.js实现一个小小的爬虫
从拉钩招聘网站中找出“前端开发”这一类岗位的信息,并作相应页面分析,提取出特定的几个部分如岗位名称、岗位薪资、岗位所属公司、岗位发布日期等。并将抓取到的这些信息,展现出来。
书童小二
2018/09/03
1.1K0
基于Node.js实现一个小小的爬虫
nodejs 与 npm 配置
npm 设置淘宝镜像: npm config set registry=https://registry.npm.taobao.org npm 查看配置: npm config list npm 取消配置: npm config delete registry 保持更新;
西湖醋鱼
2020/12/30
6750
获取iframe src里的参数
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/159827.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/14
5.9K0
获取listbox中的值
List<string> list=new List<string>();             for (int i = 0; i < lbLog.Items.Count - 1; i++)             {                 list.Add(lbLog.Items[i].ToString());             }
2018/09/03
6.2K0

相似问题

如何同步scala项目的Intellij和sbt构建

211

内爆功能突然停止工作

14

php邮件功能突然停止工作

11

Intellij 14.1.3和SBT

21

Scala、SBT和IntelliJ模块

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文