JAVA调用CSDN接口发博文

使用用户名密码登录以获取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;
    }
}

 

 

转载于:https://my.oschina.net/apdplat/blog/200145

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值