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/greeting
curl -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码
人生就是一场修行