Firebase Dynamic Link Rest API - 400 错误请求
Firebase Dynamic Link Rest API - 400 Bad Request
我正在将现有服务从使用 google url 缩短器 api 过渡到尝试使用 Firebase 动态链接。我已经从 Google 云平台链接了一个项目,并设置了一个 "dummy" android 应用程序,这样我就可以拥有用于动态链接的应用程序域。我正在尝试使用 REST API 来缩短 urls 非常长的 urls,第三方无法处理。我尝试使用以下方式发送:
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);
当我 post 对 API 的请求(在 httpCLient.execute 行上时,我收到一个 400 Bad Request。我仔细检查了我的 api-key . 我也试过只使用 longDynamicLink 参数,它得到了 400 Bad Request Response。
关于我可能哪里出错的任何想法?
谢谢,
本
我就此问题联系了 Google 支持,但我并没有在深层 link 上对我的查询字符串参数进行 UrlEncoding。对link进行编码后,请求成功。我重新使用传递 json,它只有一个 longDynamicLink 属性(与我原来的 post 中的 dynamicLinkInfo 对象相反)。这是它的样子:
String myEscapedUrl = "https://zw5yb.app.goo.gl/?link=" + URLEncoder.encode(assetUrl, "UTF-8");
FirebaseDynamicLinkRequest dynamicLinkRequest = new FirebaseDynamicLinkRequest(myEscapedUrl);
httpPost.setEntity(new StringEntity(mapper.writeValueAsString(dynamicLinkRequest)));
// inform the server about the type of the content
httpPost.setHeader("Accept", "application/json");
httpPost.setHeader("Content-type", "application/json");
responseBody = httpClient.execute(httpPost, responseHandler);
我正在将现有服务从使用 google url 缩短器 api 过渡到尝试使用 Firebase 动态链接。我已经从 Google 云平台链接了一个项目,并设置了一个 "dummy" android 应用程序,这样我就可以拥有用于动态链接的应用程序域。我正在尝试使用 REST API 来缩短 urls 非常长的 urls,第三方无法处理。我尝试使用以下方式发送:
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);
当我 post 对 API 的请求(在 httpCLient.execute 行上时,我收到一个 400 Bad Request。我仔细检查了我的 api-key . 我也试过只使用 longDynamicLink 参数,它得到了 400 Bad Request Response。
关于我可能哪里出错的任何想法?
谢谢,
本
我就此问题联系了 Google 支持,但我并没有在深层 link 上对我的查询字符串参数进行 UrlEncoding。对link进行编码后,请求成功。我重新使用传递 json,它只有一个 longDynamicLink 属性(与我原来的 post 中的 dynamicLinkInfo 对象相反)。这是它的样子:
String myEscapedUrl = "https://zw5yb.app.goo.gl/?link=" + URLEncoder.encode(assetUrl, "UTF-8");
FirebaseDynamicLinkRequest dynamicLinkRequest = new FirebaseDynamicLinkRequest(myEscapedUrl);
httpPost.setEntity(new StringEntity(mapper.writeValueAsString(dynamicLinkRequest)));
// inform the server about the type of the content
httpPost.setHeader("Accept", "application/json");
httpPost.setHeader("Content-type", "application/json");
responseBody = httpClient.execute(httpPost, responseHandler);