`

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!

相关推荐

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

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

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

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

    Java中使用Json

    Java中使用Json,具体过程和效果看博文 http://blog.csdn.net/evankaka/article/details/46741577

    Java实现异步调用

    NULL 博文链接:https://zhaoshijie.iteye.com/blog/798544

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

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

    Java 长链接示例

    JAVA实现长连接(含心跳检测)Demo,基于https://blog.csdn.net/zmx729618/article/details/54378259该作者的博文实现的代码示例。

    CMPP2.0JAVA调用

    代码来源网络,对部分内容进行了修正;确保调接口,一次通过; 博文地址:http://blog.csdn.net/dakalaowang/article/details/52401954

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

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

    ChatGLM、ChatGLM6B多用户访问接口

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

    Java使用JNI测试程序

    博文配套的JNI测试程序,测试Java调用C++的DLL库,详情见文章https://blog.csdn.net/xinxin_2011/article/details/85006113

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

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

    java nio 中文版

    本书介绍了Java平台上的高级输入/输出,具体点说,就是使用Java 2标准版(J2SE)软件开发包(SDK)1.4及以后版本进行的输入/输出。J2SE 1.4版代号Merlin,包含可观的I/O新特性,对此我们将作详细论述。这些新的I/O...

    用BeanShell来运行java脚本

    NULL 博文链接:https://q445862108.iteye.com/blog/911506

    JAVA操作MongoDB简单增删改查

    JAVA连接MongoDB,并进行简单的增删改查操作小例子源码,相关博文: http://blog.csdn.net/dream_broken/article/details/36014733

    采用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使用JavaConfig集成JPA简单例子

    Spring使用JavaConfig集成JPA简单例子,对应博文地址为http://blog.csdn.net/wu_boy/article/details/72353608

    JavaRSA加密签名

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

    使用ant从多个SourceFolder的项目中导出jar包的测试项目

    有些项目中存在多个SourceFolder,而我们可能...详情请参考该完整的java项目,或者笔者博文《如何使用ant从多个Source Folder的项目中导出jar包? 》(地址:http://blog.csdn.net/binbinxyz/article/details/7361376)

    cxf wsdl生成工具

    cxf java代码生成 wsdl文件 ,wsdl文件生成 java代码,相关博文: http://blog.csdn.net/dream_broken/article/details/35331949

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

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

Global site tag (gtag.js) - Google Analytics