java - 如何使用 okhttp 执行 Reddit 帖子

标签 java android post request reddit

我正在尝试使用 Reddit API 来保存帖子。我知道我的请求格式有误,但我似乎找不到任何有关如何正确执行此操作的文档。如果有人能引导我朝着正确的方向前进,或者帮助我正确地格式化请求。这是我目前所拥有的。

    public void save(View v)
{
    OkHttpClient client = new OkHttpClient();
    String authString = MainActivity.CLIENT_ID + ":";
    String encodedAuthString = Base64.encodeToString(authString.getBytes(),
            Base64.NO_WRAP);
    System.out.println("myaccesstoken is: "+ myaccesstoken);
    System.out.println("the image id is: "+ myimageid);
    Request request = new Request.Builder()
            .addHeader("User-Agent", "Sample App")
            .addHeader("Authorization", "Bearer " + myaccesstoken)
            .addHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
            .url("https://oauth.reddit.com/api/save.json?")
            .post(RequestBody.create(MediaType.parse("application/x-www-form-urlencoded"),
                    ""+ myimageid +
                            "1"))
            .build();

    client.newCall(request);

}

我对使用 API 非常陌生,我不确定我到底在寻找什么。这是用于保存的 reddit API 的链接

https://www.reddit.com/dev/api/oauth#POST_api_save

提前感谢您的帮助!!!

最佳答案

根据文档,您似乎错误地格式化为 POST 正文。你需要让你的 body 看起来像:

{
"category" : "your category" //This could something like "science"
"id" : "fullname of thing" 
}

看起来您还缺少 X-Modhash header 。

Fullname docs

modhash docs

您还需要包含一个 X-Modhash header 。文档在此处对此进行了解释。

关于java - 如何使用 okhttp 执行 Reddit 帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43179326/

相关文章:

java - 从 Arraylist 返回对象

java - 将 JDialog 调用到自定义 JInternalFrame 中

android - 字体如何导致 OpenGL 内存不足错误?

android - 最新版本如何使用getdownloadurl?

java - 在 JAVA 中将 JSON 对象作为 POST 发送到 REST 服务

php - POST 请求始终为空 - Laravel 8

Java Spark 禁用 Hadoop 发现

java - 如何测试使用 LocalDateTime.now() 创建的日期

android类路径异常

PHP SQL 搜索结果作为 POST/GET 链接