0

我正在从 .NET 调用状态更新,当我发布一条没有空格或特殊字符的推文时,它可以发布,但是当有其他特殊字符时,我得到一个不同的 OAuth 签名基本字符串,Twitter Oauth 工具显示这个状态 = Hello world

status%3DHello%2520world

虽然 .NET Uri.EscapeDataString(post_body) 显示:

status%3DHello%20world

这会导致 401 未经授权,因为 OAuth 签名不同。

我该如何解决这个问题?(实际上,Twitter 对空间的编码似乎没有任何标准)

谢谢

4

1 回答 1

0

Twitter 遵循规范.. 取决于编码端点的位置。

  1. URL 对键和值进行编码。你和推特都做对了。你会看到的:
  2. 按键比值排序。通过“=”连接每个键和值,并通过“&”将其连接到其他键和值。因为没有'&',所以这什么都不做。我猜这里是因为我没有使用过这个推特工具。
  3. 对整个字符串进行编码。

    “状态=hello%20world”->“状态%3Dhello%2520world”

于 2019-01-19T04:21:49.423 回答