特点 无 |
|
应用场景-->业务|技术 OK HTTP |
|
优势和劣势 无 |
|
要解决的问题 使用OK HTTP接收返回值时出现乱码 |
|
主要设计原理 无 |
|
核心思想和思路 无 |
|
关键的设计细节 无 |
|
已有的实现和对比 下文代码中体现 |
|
尝试使用或者做demo 已解决 |
|
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://restapi.amap.com/v3/config/district?subdistrict=1&showbiz=false&extensions=all&key=d071998c784bc9aacc90f2e056533385&s=rsv3&output=json&level=district&keywords=440604&callback=jsonp_305770_&platform=JS&logversion=2.0&appname=https%3A%2F%2Flbs.amap.com%2Fapi%2Fjavascript-api%2Fexample%2Fdistrict-search%2Fcity-drop-down-list&csid=9A7EAFBD-28A1-4BBA-86DE-90C828BCDF2B&sdkversion=1.4.15")
.get()
.addHeader("User-Agent", "PostmanRuntime/7.15.2")
.addHeader("Accept", "*/*")
.addHeader("Cache-Control", "no-cache")
.addHeader("Postman-Token", "8557ce59-1852-4484-a678-2ef141efb40f,57fc817c-7afc-40e9-a31e-039367462832")
.addHeader("Host", "restapi.amap.com")
.addHeader("Accept-Encoding", "gzip, deflate")
.addHeader("Connection", "keep-alive")
.addHeader("cache-control", "no-cache")
.build();
Response response = client.newCall(request).execute();
最近在做高德地图的调研,需要爬下某个城市下的区县的边界点的经纬度,在用postman测试接口的时候遇到两个问题
一:接口直接用postman测发现不能成功调用,因为是开放的,以为可以直接调用
解决办法:在高德开放平台上建立项目,然后创建自己的key,注意创建key时要选择WEB服务
二:在用Java的OK HTTP调用时,出现返回值乱码的情况
解决:删除.addHeader("Accept-Encoding","gzip,deflate");
因为浏览器在传输数据量比较大的时候会采用压缩的方式,但接收的时候没有解压所以就会出现乱码。