
request-promise-native 请求微服务接口返回 ID 精度丢失1713166949059674112 => 1713166949059674000
request-promise-native 发起请求时,当options.json 不为 false 会使用 JSON.parse 解析 body
if (self._json) {try {response.body = JSON.parse(response.body, self._jsonReviver)} catch (e) {debug('invalid JSON received', self.uri.href)}}
一、搭建 Java Web Api:
public long getId() {return id + 1713166949059674112L;}* 修改 controller 层添加 post 请求@PostMapping("/greeting_create")public Greeting createGreeting(@RequestParam(value = "name", defaultValue = "World") String name) {return new Greeting(counter.incrementAndGet(), String.format(template, name));}
二、请求
curl http://localhost:8080/greetingcurl -X POST http://localhost:8080/greeting_create
{"id":1713166949059674120,"content":"Hello, World!"}
id 转化成字符串" class="reference-link">1. 获取响应体的字符串,使用 JSONbig 将 id 转化成字符串
const rp = require('request-promise-native');const jsonBigInt = require('json-bigint');const getOptions = {'method': 'GET',json: false,'url': 'http://localhost:8080/greeting',};const getRes = await rp(getOptions);console.log('get result: ', jsonBigInt.parse(getRes));
JSON.parse
const rp = require('request-promise-native');const jsonBigInt = require('json-bigint');const postOptions = {'method': 'POST','url': 'http://localhost:8080/greeting_create',json: { name: 'test' },};const postRes = await rp(postOptions);console.log('post result: ', jsonBigInt.parse(postRes));
JSON.parse()" class="reference-link">2. 使用 JSONbig.parse() 替换 JSON.parse()
const rp = require('request-promise-native');const jsonBigInt = require('json-bigint');async function jsonBigReplaceParse() {const oldParse = JSON.parse;JSON.parse = jsonBigInt.parse;const postOptions = {'method': 'POST','url': 'http://localhost:8080/greeting_create',json: { name: 'test' },};const postRes = await rp(postOptions);console.log('post result: ', postRes);JSON.parse = oldParse;}
~
~ 本文完,感谢阅读!
~
学习有趣的知识,结识有趣的朋友,塑造有趣的灵魂!
大家好,我是〖编程三昧〗的作者 隐逸王,我的公众号是『编程三昧』,欢迎关注,希望大家多多指教!
相关推荐
© 2020 asciim码
人生就是一场修行