我正试图搞乱一个程序,它会登录reddit帐户,并在线程上发表评论。到目前为止,这是我的登录代码:
DefaultHttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("https://ssl.reddit.com/api/login");
List<NameValuePair> nameValuePairs = new ArrayList<>(4);
nameValuePairs.add(new BasicNameValuePair("user", "username"));
nameValuePairs.add(new BasicNameValuePair("passwd", "password"));
nameValuePairs.add(new BasicNameValuePair("rem", "True"));
nameValuePairs.add(new BasicNameValuePair("api_type", "json"));
try {
post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = client.execute(post);
Header header = response.getFirstHeader("set-cookie");
String cookie = header.getValue();
if (cookie.startsWith("reddit_first")) {
System.out.println("Unable to log in.");
} else if (cookie.startsWith("reddit_session")) {
System.out.println("Logged in successfullly.");
CookieStore cs = new BasicCookieStore();
System.out.println("Cookie: " + header.getValue());
BasicClientCookie bcookie = new BasicClientCookie("reddit_session", header.getValue());
bcookie.setDomain("reddit.com");
bcookie.setPath("/");
cs.addCookie(bcookie);
client.setCookieStore(cs);
redditCookie = header;
}
JSONObject obj = (JSONObject) JSONValue.parse(response.getEntity().getContent());
JSONObject json = (JSONObject) obj.get("json");
JSONObject data = (JSONObject) json.get("data");
modHash = data.get("modhash").toString();
} catch (Exception e) {
e.printStackTrace();
}
这确实有效——它报告成功登录,并存储modhash。
对于发表评论,我有:
post = new HttpPost("https://ssl.reddit.com/api/comment");
post.addHeader(redditCookie);
nameValuePairs = new ArrayList<>(4);
nameValuePairs.add(new BasicNameValuePair("api_type", "json"));
nameValuePairs.add(new BasicNameValuePair("text", imgurLink + "\r\n"));
nameValuePairs.add(new BasicNameValuePair("thing_id", thingId));
nameValuePairs.add(new BasicNameValuePair("uh", modHash));
try {
post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
response = client.execute(post);
obj = (JSONObject) JSONValue.parse(response.getEntity().getContent());
System.out.println(obj.toJSONString());
} catch (Exception e) {
e.printStackTrace();
}
虽然,当我尝试发送评论时,它告诉我需要登录才能执行此操作。我知道我必须发送reddit_session cookie才能发表评论,但我不知道我是否正确。
你看过jReddit吗?它几乎是一个完整的Reddit APIJava包装器。
我是API的新手,正在使用JSON,希望在这里得到一些帮助。 我知道我想要完成的所有事情都可以使用PRAW库来完成,但我试图在没有PRAW的情况下弄清楚。 我有一个for循环,它从一个特定的子编辑中提取文章标题,将所有的文章标题输入到一个pandas数据帧中,在达到限制后,将< code >‘after 参数更改为最后一个文章id,以便在下一批中重复。 一切都很完美,但是当我对特定线程尝试相同的技
问题内容: 我正在写一个Dockerfile。有没有办法在此文件中发表评论? Docker是否具有注释选项,该选项占用了其余行而忽略了它? 问题答案: 您可以使用#作为该行的开头来注释该行。 注意: #as 注释只能在行的 开始处 使用。
这是 reddit 官方网站的历史源代码。
我正在reddit API中寻找示例。我想从某个subreddit(http://www.reddit.com/r/VillagePorn)中提取图像并将它们放在网页上。我见过其他网站这样做(主要是),我不知道怎么做。 我试过,但只返回图片的缩略图。甚至链接本身也没有。 我该怎么办?
这是一个高级教程的例子,包含使用 Reddit API 请求文章标题的全部源码。 入口 index.js import 'babel-polyfill' import React from 'react' import { render } from 'react-dom' import Root from './containers/Root' render(<Root />, docume
我的一个应用程序通过读取数组列表将对象绘制到屏幕上: 简单代码摘要: 问题是每次用户点击鼠标时我都会添加更多的对象,所以如果用户点击的速度足够快,我会导致程序绘画结结巴巴,因为它在写入时无法读取(arrayList是同步的)。开发人员处理这种并发问题的常用做法是什么? 编辑:下面是调用重新绘制的代码: *其中operations()计算“paintable”对象属性的更改,移除满足特定条件的对象,