java - 如何在 Android 中使用 WordPress 的 WTI Like Post?

标签 java android ajax wordpress

首先,我在我的 WordPress 网站上有一个名为“WTI Like Post”的插件,它是一个用于投票帖子的竖起大拇指的插件......

这是其 GitHub repository 的预览:

WTI Like Post preview

如果您单击这些大拇指,将启动一个 ajax 链接并对帖子进行投票,然后它会再次重定向回帖子页面。该 ajax 链接是这样的:

http://example.com/wp-admin/admin-ajax.php?action=wti_like_post_process_vote&task=like&post_id=108&nonce=0d8d1f993f

现在,我想手动使用这些链接!这意味着我想通过复制该链接并将其粘贴到新选项卡中来对帖子进行投票(而不是通过单击按钮)。问题是当我自己粘贴链接时,我的浏览器返回错误: “页面没有正确重定向”。

我正在为我的网站制作一个 Android 应用程序,我能想到的对帖子进行投票的唯一方式就是那个链接。

如何手动使用它?更重要的是,如何将它与 Android 的 HttpURLConnection 一起使用?

最佳答案

查看 JavaScript source看起来 Ajax 链接应该是 http://example.com/wp-content/plugins/wti-like-post/wti_like.php,POST 主体为 action=wti_like_post_process_vote&task =like&post_id=108&nonce=0d8d1f993f。因此,在 Android 上,使用 example code here ,这应该有效:

String urlParameters  = "action=wti_like_post_process_vote&task=like&post_id=108";
byte[] postData       = urlParameters.getBytes( StandardCharsets.UTF_8 );
int    postDataLength = postData.length;
String request        = "http://example.com/wp-content/plugins/wti-like-post/wti_like.php";
URL    url            = new URL( request );
HttpURLConnection conn= (HttpURLConnection) url.openConnection();           
conn.setDoOutput( true );
conn.setInstanceFollowRedirects( false );
conn.setRequestMethod( "POST" );
conn.setRequestProperty( "Content-Type", "application/x-www-form-urlencoded"); 
conn.setRequestProperty( "charset", "utf-8");
conn.setRequestProperty( "Content-Length", Integer.toString( postDataLength ));
conn.setUseCaches( false );
try( DataOutputStream wr = new DataOutputStream( conn.getOutputStream())) {
   wr.write( postData );
}

请注意,随机数在 Android 上不是必需的,因为 setUseCaches(false) 将确保每次都重新访问链接。

关于java - 如何在 Android 中使用 WordPress 的 WTI Like Post?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32365113/

相关文章:

javascript - 在 Razor 部分 Html BeginForm 中停止回发时的页面移动

java - Eclipse 格式化程序/清理失败

java - 位图而不是 View 上的波纹动画

android - 在真正的 android 设备 2.3 上的 google maps v2 中膨胀类 fragment ?

ajax - d3.js 差异图表示例如何处理 json 数据?

javascript - 在 jQuery UI Autocomplete 中, `response` 函数是在哪里实现的?

java - 我如何将异常从 servlet 过滤器传递到 Spring 组件

java - 如何在 Spring RestTemplate 中自定义自动编码(marshal)处理以生成/修改 XML header (编码、DOCTYPE)

java - Android 下载管理器 - 无法知道下载的大小

android - 没有提升的 android 中的阴影(允许通过 <Modal> 点击?)(提升的尊重 zIndex?)