最近新上线了一个网站,专门收集网上签到赚钱,有奖活动等等的网站 我就要集分宝 http://www.591jfb.com。新建立 了一个栏目“每日更新”,这样就需要每天都登录到网站后台去发布文章,感觉有些繁琐,于是就想找点省劲的办法,于是便有了此文。
搜索下载了苏飞提供的httphelper,比着例子写了一下程序,结果返回的html总是错误页,于是又翻sufeinet论坛上面的帖子,搜索到有人用苏飞开发助手测试远程发布,于是也下载下来测试了一下,结果成功了,对照苏飞开发助手生成的代码和我写的代码的差别,最终发现问题出现在cookie上面。直接写result.cookie赋值的cookie值有一些path=/ 类似的字符串。
最终使用代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Utility;
namespace PostArticle2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
HttpHelper http = new HttpHelper();
HttpItem item = null;
HttpResult result = null;
item = new HttpItem()
{
URL = "http://php.sxg.com/zb_system/cmd.php?act=verify",
Referer = "http://php.sxg.com/zb_system/login.php",
Method = "post",//URL 可选项 默认为Get
ContentType = "application/x-www-form-urlencoded",
Postdata = "btnPost=%E7%99%BB%E5%BD%95&username=username&password=pwd&savedate=0&dishtml5=0",
};
result = http.GetHtml(item);
string cookie = string.Empty;
foreach (CookieItem s in HttpCookieHelper.GetCookieList(result.Cookie))
{
cookie += HttpCookieHelper.CookieFormat(s.Key, s.Value);
}
item = new HttpItem()
{
URL = "http://php.sxg.com/zb_system/cmd.php?act=ArticlePst",
Referer = "http://php.sxg.com/zb_system/admin/edit.php?act=ArticleEdt",
Cookie = cookie,
Method = "post",
Postdata = "ID=0&Type=0&Title=1720sxg&Content=%3Cp%3Esxgsxg%3C%2Fp%3E&meta_keywords=&meta_description=&Alias=&Tag=&Intro=&CateID=1&Status=0&Template=single&AuthorID=1&PostTime=2015-01-13+11%3A37%3A01&IsTop=0&IsLock=0",
Allowautoredirect = true,
ContentType = "application/x-www-form-urlencoded",
Host = "php.sxg.com",
ResultType = ResultType.String
};
http.GetHtml(item);
}
}
}