我正在使用google url shortener api过渡现有服务,尝试使用Firebase动态链接。我已经链接了一个来自Google云平台的项目,并设置了一个"虚拟" Android应用程序,以便我可以拥有动态链接的应用程序域。我正在尝试使用REST API来缩短不能由第三方处理的长网址的网址。我尝试使用以下方式发送:
ObjectMapper mapper = new ObjectMapper();
HttpPost httpPost = new HttpPost("https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=****");
FirebaseDynamicLinkInfo dynamicLinkRequest = new FirebaseDynamicLinkInfo();
dynamicLinkRequest.setDynamicLinkDomain("zw5yb.app.goo.gl");
dynamicLinkRequest.setLink(assetUrl);
httpPost.setEntity(new StringEntity(mapper.writeValueAsString(dynamicLinkRequest)));
httpPost.setHeader("Accept", "application/json");
httpPost.setHeader("Content-type", "application/json");
responseBody = httpClient.execute(httpPost, responseHandler);
当我将请求发布到API时(在httpCLient.execute行上,我收到400 Bad Request。我已经仔细检查了我的api-key。我也尝试使用longDynamicLink参数,它获得了400错误的请求响应。
我可能出错的任何想法?
谢谢,
本
答案 0 :(得分:0)
我在这个上联系了Google支持,我没有在深层链接上编写我的查询字符串参数。对链接进行编码后,请求成功。我回过头来使用传递json,它只有一个longDynamicLink属性(而不是我原来帖子中的dynamicLinkInfo对象)。这是它的样子:
(node:30097) UnhandledPromiseRejectionWarning: SyntaxError: Unexpected token u in JSON at position 0
at JSON.parse (<anonymous>)
at run (/Users/aakins/Projects/performance/test.js:48:34)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:160:7)