`

JAVA调用CSDN接口发博文

    博客分类:
  • java
阅读更多

使用用户名密码登录以获取cookies,随后使用获得的cookies就可以进行诸如发博文等任意操作了。

 

 

import java.util.HashMap;
import java.util.Map;
import org.jsoup.Connection;
import org.jsoup.Connection.Method;
import org.jsoup.Connection.Response;
import org.jsoup.Jsoup;

/**
 * CSDN发博文
 * @author 杨尚川
 */
public class CsdnBloger {
    public static void main(String[] args) throws Exception{
        Map<String, String> cookies = login("csdnblogtest@163.com", "csdnblogtest");
        String title = "Java应用级产品开发平台APDPlat";
        String content = "APDPlat是Application Product Development Platform(应用级产品开发平台)的缩写。APDPlat提供了应用容器、多模块架构、代码生成、安装程序、认证授权、备份恢复、数据字典、web service、系统监控、操作审计、统计图、报表、机器绑定、防止破解、数据安全、内置搜索、数据转换、maven支持、WEB组件、内容管理、工作流、Web资源优化等功能。";
        String tags = "APDPlat";
        publishBlog(cookies, title, content, tags);
    }    
    public static void publishBlog(Map<String, String> cookies, String title, String content, String tags) throws Exception{
        String url = "http://write.blog.csdn.net/postedit?edit=1&isPub=1";
        Connection conn = Jsoup.connect(url)
                        .header("Accept", "*/*")
                        .header("Accept-Encoding", "gzip, deflate")
                        .header("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3")
                        .header("Connection", "keep-alive")
                        .header("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")                        
                        .header("Host", "write.blog.csdn.net")
                        .header("Pragma", "no-cache")
                        .header("Referer", "http://write.blog.csdn.net/postedit")
                        .header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0")                        
                        .header("X-Requested-With", "XMLHttpRequest")
                        .data("tags", tags)
                        .data("titl", title)
                        .data("typ", "1")
                        .data("cont", content)
                        .data("desc", "")
                        .data("flnm", "")
                        .data("chnl", "0")
                        .data("comm", "2")
                        .data("level", "0")
                        .data("tag2", "")
                        .data("artid", "0")
                        .data("stat", "publish")
                        .ignoreContentType(true);
        for(String cookie : cookies.keySet()){
            conn.cookie(cookie, cookies.get(cookie));
        }
        String text = conn.post().text();
        System.out.println(text);
    }    
    public static Map<String, String> login(String userName, String password) throws Exception{
        Map<String, String> map = new HashMap<>();
        map.put("u", userName);
        map.put("p", password);
        map.put("t", "log");
        map.put("remember", "0");
        map.put("f", "http%3A%2F%2Fwww.csdn.net%2F");
        map.put("rand", "0.4835865827484527");
        Connection conn = Jsoup.connect("https://passport.csdn.net/ajax/accounthandler.ashx");
        conn.header("Accept", "*/*");
        conn.header("Accept-Encoding", "gzip, deflate");
        conn.header("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3");
        conn.header("Host", "passport.csdn.net");
        conn.header("Referer", "https://passport.csdn.net/account/login");        
        conn.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0");
        conn.header("X-Requested-With", "XMLHttpRequest");
        Response response = conn.ignoreContentType(true).method(Method.POST).data(map).execute();
        System.out.println("用户登录返回信息:"+response.body());
        Map<String, String> cookies = response.cookies();
        System.out.println("*******************************************************cookies start:");
        cookies.keySet().stream().forEach((cookie) -> {
            System.out.println(cookie+":"+cookies.get(cookie));
        });
        System.out.println("*******************************************************cookies end:");
        return cookies;
    }
}

 

 

8
0
分享到:
评论
5 楼 xianlaioy 2015-10-28  
提示:
{"result":0,"content":"您输入的验证码计算结果不正确。","callback":null,"data":null}
4 楼 xianlaioy 2015-10-28  
这个可以解决:http://mengyang.iteye.com/blog/575671,但提示:
3 楼 xianlaioy 2015-10-28  
报错:
Exception in thread "main" javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1591)
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:187)
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:181)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1035)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:124)
at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:516)
at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:454)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:884)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1096)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1123)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1107)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:415)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:133)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:425)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:410)
at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:164)
2 楼 rex0654335 2014-02-17  
楼主懂的太多了、
1 楼 hailongshih 2014-02-17  
Very Good,mark!

相关推荐

    easyapi-0.3.9(java接口文档自动扫描,自动生成,可视化页面)

    一款java接口文档自动生成的插件,包含了根据接口注释或注解自动生成接口文档,可网页打开,使用spring+vue开发,告别传统手写接口文档,告别swagger臃肿视图和阉割功能,提供了生成、管理及使用等全方位功能。...

    Java泛型类、接口、方法的使用方法的全部案例

    Java的泛型类、接口、方法的使用方法的全部案例 具体博文: List接口与实现类:https://blog.csdn.net/yao_yaoya/article/details/128018221 泛型的介绍和使用方法:...

    Java自定义函数式接口idea源码

    Java自定义函数式接口, 单参数无参使用方法。多参数带返回值使用方法。csdn博文地址:https://blog.csdn.net/yuzhiqiang_1/article/details/100579308

    java 测试

    “工具”可能指的是用于辅助测试的各种Java工具和库,如Mockito用于模拟对象,JMockit用于无侵入式模拟,或者使用Apache Maven或Gradle构建工具中的插件进行自动化测试和报告生成。此外,持续集成工具如Jenkins、...

    使用JAVA调用GDAL实现KMZ和KML文件解析源代码

    使用Java开发的调用GDAL实现对KMZ和KML文件的自动解析,保存到数据库的源码。提供统一的数据解析方式,可以和其他的矢量数据读取方式一起整合起来。参考博文地址如下: ...

    java 线程池

    线程池在Java中由`java.util.concurrent`包下的`ExecutorService`接口及其实现类,尤其是`ThreadPoolExecutor`类提供。这篇博文可能详细介绍了线程池的工作原理、配置参数以及如何使用。 线程池的核心组件包括: 1....

    Java Resource

    博文链接提到的https://xfjt297857539.iteye.com/blog/1415510可能详细讨论了如何在实际开发中有效管理和使用Java资源,包括但不限于以下几个方面: 1. **资源的组织结构**:在大型项目中,资源通常按照模块或功能...

    #2014 CSDN博文大赛#

    在本篇博文中,主题聚焦于2014年CSDN博客大赛中关于网页相册特效制作的技术分享。文章主要探讨了两种不同类型的交互功能:一种是针对前端用户,仅允许他们修改特定数据库记录;另一种是专为后台系统管理员设计,提供...

    java classloader

    深入Java 2 SDK.pdf`可能涉及的是Java与其他工具和技术的集成,如与微软Office的交互、使用Visual Studio .NET管理Java应用、Ant构建工具的使用以及对Java 2 SDK的深入理解,这些都可能间接地涉及到ClassLoader的...

    人脸识别检测opencv简单java实现

    接下来我们将图片转化成Java API能够接受使用Highui类的格式,铺垫在OpenCV C++的n维密集数组类上边。 然后,调用分类器上的detectMultiScale方法传递给它图象和MatOfRect对象。这个过程之后,MatOfRect将有面部检测...

    夏昕与林信良谈Spring框架_CSDN 博文视点名家讲坛活动.doc

    本次CSDN和博文视点名家讲坛活动中,技术专家夏昕和林信良共同探讨了Spring的相关知识。 【新手学习Spring的时机】夏昕建议,拥有大约一年的Java Web应用开发经验后,开发者可以开始学习Spring。这是因为一年的实际...

    ChatGLM、ChatGLM6B多用户访问接口

    ChatGLM、ChatGLM6B多用户访问接口,支持http、websocket和前端页面多用户同时访问,ChatGLM模型部署详细介绍请参考博文“https://blog.csdn.net/suiyingy/article/details/130412307”。ChatGLM6B默认的部署程序仅...

    Java 利用RXTX串口工具使用短信猫

    java调用短信猫发送短信。 这里的短信猫主要使用RS232串口与服务器通信。smslib.jar 需要用到java串口通信需要用到的comm.jar,win32com.dll和javax.comm.properties。 下载地址:短信猫java二次开发包smslib及使用...

    xmpp之java服务端实现tigase整合项目源代码

    该资源是整合了tigase的java服务端源代码,环境为:idea...注意,这部分项目只包括java源代码,而数据库备份将在下一个资源打包上传,有疑问请阅读相关博文: https://blog.csdn.net/cdnight/article/details/85222028

    采用java 来访问PI ,所使用的的驱动包

    采用java 来访问PI,我修改之后的精简安装包: 集成以下安装包(64位)。 * OLE DB * PI SQL Data Access Server * PI JDBC Driver 2016 ...博文原文:https://blog.csdn.net/N199109/article/details/78095252

    Spring+SpringMVC+Mybatis框架整合例子(SSM) 下载

    Spring、SpringMVC和Mybatis是Java开发中最常用的三大开源框架,它们的整合使用,通常被称为SSM框架。这个框架组合提供了完整的后端服务解决方案,包括依赖注入(DI)、面向切面编程(AOP)、模型-视图-控制器(MVC...

    经典项目Java小游戏 - 弹力球

    博文连接:https://blog.csdn.net/m0_46013789/article/details/135949927 设计一个Java弹球小游戏的思路如下: 创建游戏窗口:使用Java图形库(如Swing或JavaFX)创建一个窗口,作为游戏的可视化界面。 绘制游戏...

    经典游戏Java实现QQ农场小游戏(附源码)

    【博文连接】: https://blog.csdn.net/m0_46013789/article/details/137151517 【引流】 QQ农场是腾讯QQ推出的一款社交类休闲游戏,玩家可以在游戏中体验种植、养殖等农场经营的乐趣。以下是对QQ农场游戏的详细...

    利用Jsoup爬虫csdn网页的html数据

    本文参考链接详细介绍如何使用Jsoup包抓取HTML数据,是一个纯java工程,并将其打包成jar包。希望了解如何用java语言爬虫网页的可以看下。详见博文: http://blog.csdn.net/yanzi1225627/article/details/38308963

    JavaRSA加密签名

    实现Java RSA加密及签名的,作为博文的Dome存在,代码很简单,但是分设置较高,主要是希望大家能自己去写,而不是直接下载Demo使用,博文:http://blog.csdn.net/MicrosoftDesigner/article/details/79133359

Global site tag (gtag.js) - Google Analytics