我正在为 iPhone 制作一个 Reddit 应用程序,该应用程序的部分功能需要将新故事(即链接或文本)发布到 Reddit。
当我尝试执行此操作时,我会发出以下请求并根据过去的登录尝试设置请求的 cookie:
http://www.reddit.com/api/submit/?uh=%@&text=TestofAPISubmitonapigee&kind=self&sr=redditdev&title=APISubmitTest&r=redditdev&api_type=json
(其中 %@ 被用户 modhash 替换,类似于 aa4aaaa3aaaaaa88ea8b19639c389521a813d21cb3e5688dbf)
但是,提交请求后,我收到以下回复:
<html>
<head>
<title>reddit broke!</title>
</head>
<body>
<div style="margin: auto; text-align: center">
<p>
<a href="/">
<img border="0" src="http://www.redditstatic.com/youbrokeit1.png" alt="you broke reddit" />
</a>
</p>
<p>
I've made a huge mistake!
</p>
</body>
</html>
或者上述消息的变体。对我做错了什么有什么想法吗?
我想通了。您所要做的就是使用
NSMutableURLRequest
将 POST 数据放入 [request setHTTPBody:@"NSString of the POST data"];
的 HTTP 主体中,而不是上面的内容,从技术上讲,这是一个 GET 请求。我发现这很令人困惑,因为这种方法适用于使用 API 登录 Reddit。原来可以通过GET方式登录,但是必须POST才能分享新链接。