下面的图片是我在unicloud云对象中调用的第三方api接口
前提: 我已经发邮件给Dcloud官方申请了第三方api接口的域名代理,并且已经收到通过回复!!!!
在代码中的params 参数有值调用接口就会返回server Errer 比如下面
①const params = encodeURIComponent('{"searchWord":"123"}');
②const params = encodeURIComponent('a');
③const params = encodeURIComponent('{}');
每一次我测试的时候都会把在代码中执行的url放到postman中来测试
我在代码中使用uniCloud.httpProxyForEip调用api的结果与postman中的结果是不一样的
就比如上面的①
postman中的返回结果是{"msg":"没有此行政区划信息","returncode":"101"};
而在代码中却是server Errer,直接是调用失败
代码和postman使用的都是一样的url,而且参数都是经过encodeURIComponent()处理过的
======================
简单来说
======================
就是我在代码中使用uniCloud.httpProxyForEip调用第三方api接口,在使用encodeURIComponent()处理参数的前提下,都会返回server Errer
如下
const params = encodeURIComponent('{"searchWord":"北京"}');
let apiUrl = 'http://api.tianditu.gov.cn/administrative?postStr=' + params + '&tk=' + api_key
const res333 = await uniCloud.httpProxyForEip.post(apiUrl);
如果在代码中使用uniCloud.httpProxyForEip调用第三方api接口,不使用encodeURIComponent()处理参数,会报 Not enough variable values available to expand '"searchWord"'错误
如下
let apiUrl = 'http://api.tianditu.gov.cn/administrative?postStr={"searchWord":"北京"}&tk=' + api_key
const res333 = await uniCloud.httpProxyForEip.post(apiUrl);
我想问一下,我的问题是出在哪?如果说是接口的问题,那么我在代码中调用的url放到postman中,却得到接口的回应。
所以我断定这个问题不可能是接口方的问题,问题可能出自uniCloud.httpProxyForEip,我希望能得到官方的回应,和解决方案
QQ:858851656