java - 使用 REST API 和 Java Jersey 应用程序在 Wordpress 上发布帖子
问题描述
我正在尝试使用 Jersey WebResource 对象在 Wordpress 网站上发布帖子。Wordpress 站点和 Java 应用程序都是本地的。我正在尝试这个:
String url = "http://localhost:81/testsite/wp-json/wp/v2/posts";
String myPostData = "{'title':'test','content':'bla bla bla'}";
Client client = Client.create();
WebResource webResource = client.resource(url);
webResource.header(HttpHeaders.AUTHORIZATION, "Basic XXXXXX"); //XXXXXX is the encoded user:password
webResource.header(HttpHeaders.CONTENT_TYPE, "application/json");
webResource.accept(MediaType.APPLICATION_JSON);
ClientResponse response = webResource.post(ClientResponse.class, myPostData);
我得到了回应:
POST http://localhost:81/testsite/wp-json/wp/v2/posts返回响应状态为 401 Unauthorized
使用 Postman 时,我能够成功发布。
我究竟做错了什么?
解决方案
WebResource.header()
返回一个新的WebResource.Builder
. 所以当你在做
WebResource webResource = client.resource(url);
webResource.header(HttpHeaders.AUTHORIZATION, "Basic XXXXXX");
在第二行中,您正在创建一个新的WebResource.Builder
并且什么都不做。所以发生的事情是标题永远不会在您调用post()
原始文件时设置,WebResource
而不是WebResource.Builder
您设置的标题。
您可以将header()
调用分配给WebResource.Builder
变量并在其上调用方法,也可以将调用链接起来。
WebResource webResource = client.resource(url);
WebResource.Builder builder = webResource.header(HttpHeaders.AUTHORIZATION, "Basic XXXXXX");
builder.header(HttpHeaders.CONTENT_TYPE, "application/json");
builder.accept(MediaType.APPLICATION_JSON);
ClientResponse response = builder.post(ClientResponse.class, myPostData);
或者全部链接
ClientResponse response = client.resource(url)
.header(HttpHeaders.AUTHORIZATION, "Basic XXXXXX")
.header(HttpHeaders.CONTENT_TYPE, "application/json")
.accept(MediaType.APPLICATION_JSON)
.post(ClientResponse.class, myPostData);
推荐阅读
- laravel - Bootstrap 的 JavaScript 在 vue js +laravel 中需要 jQuery
- python - 通过 paramiko 运行命令/删除文件夹
- python - 如果给定的键和值从字典列表中匹配,则获取所有字典
- python - 在 jupyter notebook 中并排显示图像
- reactjs - 向 AspNet Core 3.0-preview React 项目添加授权(带身份验证)
- sql-server - 仅当行与当前值不同时才更新/插入行
- html - 将本地副本上传到 bluehost 时,我的网页的相对文件路径需要更改
- sql - Mutating table error when trying to Insert into Table with select
- r - R Shiny 数据表组行以提高可读性
- elasticsearch - 弹性搜索:如何在文档中划分一个数字然后排序?