(HttpClient技术)(58同城系列)58同城发帖

来源:互联网 发布:php变量覆盖 编辑:程序博客网 时间:2024/05/17 02:14

    58同城的登陆和加密,都已经被我破解了,那其实目的就一目了然了,是的,目的就是58同城的模拟发帖。

    为了写这个发帖机,我是煞费苦心,百度和谷歌,到处搜索资料,结果,一无所获,是的,真的是一无所获,基本上,所有的搜索,都找不到相关资料,我无语了,这是咋回事呢,难道58同城做了封杀,把所有的资料,都封杀了,为此,我忐忑不安,写文章之前,我还在想,我写了这个文章,是不是也会立刻被封杀呢。。。

    不过想再多,发还是要发的,分享一下我的经验给大家,就给58同城开个刀吧

     58同城的登陆成功了,那么发帖就很容易了,其实,不然,发帖才是真正有难度的,写发帖,建议,必须使用httpclient 4以上版本,难度小一些,3的版本,难度有点大,很是不建议

    首先,模拟进入发帖页面,这些我就不详细累赘了,

    从发帖开始,开始发帖,首先注意到了,Content-Type,这个字段是一个multipart/form-data; ,一万匹马从我的脑海中飞过啊,这个东西,httpclient3的版本,兼容的不好,只有的4里面,有兼容,下面我吧兼容的代码贴出来,供大家参考一下:

    4里面可以使用MultipartEntity,模拟multipart/form-data;

            MultipartEntity mutiEntity = new MultipartEntity();

            MultipartEntity mutiEntity = new MultipartEntity();
            mutiEntity.addPart("daizhaogongsiID",new StringBody("", Charset.forName("utf-8")));
            mutiEntity.addPart("parentuid",new StringBody(userid, Charset.forName("utf-8")));
            mutiEntity.addPart("childuserid",new StringBody(userid, Charset.forName("utf-8")));
            mutiEntity.addPart("fulibaozhang",new StringBody("1|8|6|9|2|7", Charset.forName("utf-8")));
            g3.setEntity(mutiEntity);
            HttpResponse  httpResponse = httpClient.execute(g3);
            HttpEntity httpEntity =  httpResponse.getEntity();
            String sg3 = EntityUtils.toString(httpEntity)

好的,这个难关过了,那么可以开始发送了

开始,连续3天,都出现这个错误,无法成功:

document.domain='58.com'; parent.$.formValidator.subfalse('aspnetForm', 'fabu'); parent.$.c.user.loginsuccess_callback('25393157009927');parent.$('#frmPassport').closest('tr').remove();parent.$.xxzl.cptr.destroy();parent.$.xxzl.cptr.init('3b0e29dae7bb0020f6b0a2d709a3acd34f');

这个错误,看的出来,其实,是已经发到服务器了,但是某个参数出错了,仔细研究了一下,才发现,原来是这个参数引起的,

经过一星期的奋战,终于,完全通过了58的发帖机制,太不容易了,有啥问题,大家联系我哈,嘿嘿



4 0
原创粉丝点击