Idol之坑
1. 编码格式不统一
Idol的API 是基于 Http 的 Get 调用,输入N多参数,可以吐出Xml和 Json。
由于Idol没有在输出文档中指定编码格式(ContentType),用 HttpWebRequest获取Response可以得到 HttpResponse.Charaterset 会返回 “ISO-8859-1” 编码格式,它是 Tomcat的默认编码格式。如果用这个编码格式会把中文解析成乱码。这也是添加 ResponseFormat=json,浏览器会输出乱码的原因。
Idol需要使用UTF8来进行读取。
对比ES
的输出头上会有 Content-Type:application/json; charset=UTF-8
2. IDol的Api输出DOCUMENT内容的全都是大写。
它这样实现的目的,可能是在和用户查询作比较时,不用关心大小写。但是对我们模型映射造成困难。
3.输出格式不统一
Idol支持两种输出格式: Xml格式,Json格式。
Xml格式,会把数据扁平化。在Document节下面是数据,里面没有子级,如果简历里有工作经历,它是一个列表,那么Idol会输入类似下面的东西。
<id>1</id>
<Company>北京1公司</Company>
<StartAt>2000-1-1</StartAt>
<EndAt>2003-12-30</EndAt>
<id>2</id>
<Company>北京2公司</Company>
<StartAt>2004-1-1</StartAt>
<EndAt>2006-12-30</EndAt>
如果输出Json格式,则更加扯蛋。
它会把值类型改变为: {$:"值"} 对象。如下:
[{id:{$:1},Company:{$:"北京1公司"},StartAt:{$:"2000-1-1"},EndAt:{$:"2003-12-30"},
{id:{$:2},Company:{$:"北京2公司"},StartAt:{$:"2004-1-1"},EndAt:{$:"2006-12-30"}]
Idol之坑的更多相关文章
- 如何一步一步用DDD设计一个电商网站(九)—— 小心陷入值对象持久化的坑
阅读目录 前言 场景1的思考 场景2的思考 避坑方式 实践 结语 一.前言 在上一篇中(如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成),有一行注释的代码: public interfa ...
- 多线程爬坑之路-Thread和Runable源码解析之基本方法的运用实例
前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面 ...
- Spark踩坑记——Spark Streaming+Kafka
[TOC] 前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端,我们利用了spark strea ...
- 多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类)
前言:刚学习了一段机器学习,最近需要重构一个java项目,又赶过来看java.大多是线程代码,没办法,那时候总觉得多线程是个很难的部分很少用到,所以一直没下决定去啃,那些年留下的坑,总是得自己跳进去填 ...
- 踩石行动:ViewPager无限轮播的坑
2016-6-19 前言 View轮播效果在app中很常见,一想到左右滑动的效果就很容易想到使用ViewPager来实现.对于像我们常说的banner这样的效果,具备无限滑动的功能是可以用ViewPa ...
- 为C# as 类型转换及Assembly.LoadFrom埋坑!
背景: 不久前,我发布了一个调试工具:发布:.NET开发人员必备的可视化调试工具(你值的拥有) 效果是这样的: 之后,有小部分用户反映,工具用不了(没反应或有异常)~~~ 然后,建议小部分用户换个电脑 ...
- 首个threejs项目-前端填坑指南
第一次使用threejs到实际项目中,开始的时候心情有点小激动,毕竟是第一次嘛,然而做着做着就感受到这玩意水好深,满满的都是坑,填都填不过来.经过老板20天惨无人道的摧残,终于小有成就. 因为第一次搞 ...
- dll文件32位64位检测工具以及Windows文件夹SysWow64的坑
自从操作系统升级到64位以后,就要不断的需要面对32位.64位的问题.相信有很多人并不是很清楚32位程序与64位程序的区别,以及Program Files (x86),Program Files的区别 ...
- 关于微软HttpClient使用,避免踩坑
最近公司对于WebApi的场景使用也越来越加大了,随之而来就是Api的客户端工具我们使用哪个?我们最常用的估计就是HttpClient,在微软类库中命名空间地址:System.Net.Http,是一个 ...
随机推荐
- JS 之作用域链和闭包
1.JS无块级作用域 <script> function Main(){ if (1==1){ var name = "alex"; } console.log(nam ...
- 前端Html+Css——豆蔻年华(自学一个月)
详细见千万别碰我--燕十三 html .htm .shtml三者区别是什么 1..htm与.html没有本质上的区别,表示的是同一种文件,只是适用于不同的环境之下. 2.DOS仅能识别8+3的文件名, ...
- codeforces 361 E - Mike and Geometry Problem
原题: Description Mike wants to prepare for IMO but he doesn't know geometry, so his teacher gave him ...
- Cadence UVM基础视频介绍(UVM SV Basics)
Cadence关于UVM的简单介绍,包括UVM的各个方面.有中文和英文两种版本. UVM SV Basics 1 – Introduction UVM SV Basics 2 – DUT Exampl ...
- 编程范式 epesode7,8 stack存放指针类型and heap,register
这一节从后往前写. ____stack and heap ___stack由 汇编语言操控管理,数据先入后出. 栈是存放局部变量,函数调用子函数时,该函数在栈中占用的空间会增大,用于存放子函数的局部变 ...
- pcm跟.wav文件的关系
PCM(Pulse Code Modulation----脉码调制录音).所谓PCM录音就是将声音等模拟信号变成符号化的脉冲列,再予以记录.PCM信号是由[1].[0]等符号构成的数字信号,而未经过任 ...
- 深入理解js——原型的灵活性
在java中,class是一个模子,对象就是按照这个模子刻出来的:但是在JavaScript中对象可以刻成任意的样子. 首先,对象属性可以随时改动.对象或者函数,刚开始new出来之后,可能啥属性都没有 ...
- Spring aop——前置增强和后置增强 使用注解Aspect和非侵入式配置
AspectJ是一个面向切面的框架,它扩展了java语言,定义了AOP语法,能够在编译期提供代码的织入,所以它有一个专门的编译器用来生成遵守字节码字节编码规范的Class文件 确保使用jdk为5.0以 ...
- 【BootStrap】 基础
[BootStrap] 基础 一. 自适应(针对不同设备如手机平板笔电,使页面的宽度适应设备宽度) <meta name="viewport" content="w ...
- meta标签总结
1."format-detection" format-detection翻译成中文的意思是“格式检测”,顾名思义,它是用来检测html里的一些格式的, 那关于meta的forma ...