我正在尝试构建 ac# 模块以使用 OAuth(现在是唯一的选择)连接到 Twitter 流 API。我已经到了我的模块将使用 GET 成功访问 api url 的地步,但是我尝试发出 POST 请求的所有操作都失败并出现 401。
我通过使用我的 Twitter 应用程序页面上的 OAuth 工具选项卡检查了我的签名是否正确,并在我的代码中修复了 nonce 和时间戳的值。我已经为 Windows 设置了 curl,并且可以验证它是否适用于 OAuth 工具生成的示例 curl 脚本(顺便说一下,这需要对引号进行一些更正以使其适用于 Windows Cmd 中的 curl。摆脱单引号在不需要它们的值上,在需要引用的任何内容上使用双引号,在 Authorization 标头上,使用双引号并在标头中使用反斜杠转义双引号)。
我什至已经完成了在跟踪模式下运行 curl 并从我的 c# 代码输出我在帖子正文中发送的字节的长度,我可以验证它们是否相同。
我正在尝试使用“track=twitter”作为帖子正文访问“ https://stream.twitter.com/1.1/statuses/filter.json ”。标题是:
Accept: */*
User-Agent: curl/7.21.7(amd64-pc-win32) libcurl/7.21.7 OpenSSL/0.9.8rzlib/1.2.5
Content-Type: application/x-www-form-urlencoded
Host: stream.twitter.com
Content-Length: 13
Connection: Keep-Alive
Authorization: OAuth <the oauth stuff>
我无法检查正在发送的数据包以检查请求是否相同,因为它们当然是 SSL 编码的。
有任何想法吗?