当前位置: 首页 > 面试题库 >

使用URL编码的LinkedIn API调用

鲍俊杰
2023-03-14
问题内容

例如,如果我打电话给:

https://api.linkedin.com/v1/people/~:(id,first-name,last-name)

它应该可以正常工作,但是如果URL编码(应该是)是这样的:

https://api.linkedin.com/v1/people/~:%28id,first-name,last-name%29

我收到此错误消息:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<error>
    <status>404</status>
    <timestamp>1423577265744</timestamp>
    <request-id>6B2UQSA25W</request-id>
    <error-code>0</error-code>
    <message>[invalid.property.name]. Couldn&#39;t find property with name {:%28id,first-name,last-name%29} in resource of type {Person}</message>
</error>

你怎么处理呢?
目前,我无法更改代码,因为我的语言(Golang btw)使用standar软件包可以非常正确地对其进行编码。这是我的代码:

r, _ := http.NewRequest("GET", "https://api.linkedin.com/v1/people/~:(id,first-name,last-name)", nil)
r.Header.Set("Authorization", "Bearer "+respBody.AccessToken)
resp, err = http.DefaultClient.Do(r)

除了重写std lib代码以外,您是否有解决此问题的方法?

自2013年以来,有些人面临同样的问题https://developer.linkedin.com/forum/edit-i-dont-way-uris-
look


问题答案:

创建请求后,将URL不透明字段设置为路径:

r, err := http.NewRequest("GET", "https://api.linkedin.com", nil)
if err != nil {
  // handle error
}
r.URL.Opaque = "/v1/people/~:(id,first-name,last-name)"
r.Header.Set("Authorization", "Bearer "+respBody.AccessToken)
resp, err = http.DefaultClient.Do(r)

该URL类型文档介绍了如何做到这一点。



 类似资料:
  • 问题内容: 如何使用JavaScript安全地编码URL,以便可以将其放入GET字符串中? 我假设您需要在第二行编码该变量? 问题答案: 签出内置函数encodeURIComponent(str)和encodeURI(str)。 在您的情况下,这应该起作用:

  • 问题内容: 我正在尝试使用spring的UriComponentsBuilder为oauth交互生成一些url。查询参数包括诸如回调URL和其中带有空格的参数值之类的实体。 尝试使用UriComponentBuilder(因为现在已弃用UriUtils) 不幸的是,虽然scope参数中的空格已成功用’+’替换,但redirect_uri参数根本没有经过url编码。 例如, 应该已经结束了 但是没有

  • 我想把mathjax脚本添加到我的模板

  • URL编码是将URL中具有特殊含义的不可打印字符或字符转换为明确且由Web浏览器和服务器普遍接受的表示的实践。 这些字符包括 - ASCII control characters - 通常用于输出控制的不可打印字符。 字符范围为00-1F十六进制(十进制0-31)和7F(十进制127)。 下面给出了完整的编码表。 Non-ASCII control characters - 这些是超过128个字符

  • URL编码是将URL中具有特殊含义的不可打印字符或字符转换为明确且由Web浏览器和服务器普遍接受的表示的实践。 这些字符包括 - ASCII control characters - 通常用于输出控制的不可打印字符。 字符范围为00-1F十六进制(十进制0-31)和7F(十进制127)。 下面给出了完整的编码表。 Non-ASCII control characters - 这些是超过128个字符

  • 问题内容: 我正在尝试让Alamofire在GET请求中发送以下参数,但它发送的是乱码: 这是我的代码: 输出 {“ $ and”:[{“ name”:{“ $ bw”:“ duke”},“ country”:“ gb”}]} 这是我的参数要求: 这是AlamoFire发送的: 如您所见,filter参数是一团糟。我究竟做错了什么? 问题答案: 默认情况下,Alamofire使用POST正文中的“