import org.apache.commons.httpclient.Cookie;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;public class Test {
public static void main(String[] args) throws HttpException, IOException {
HttpClient client=new HttpClient();
client.getHostConfiguration().setHost("http://www.tmdss.com/",80);
PostMethod pMethod=new PostMethod("http://www.tmdss.com/logging.php?action=login&loginsubmit=true");
NameValuePair formhash = new NameValuePair("formhash","16db2c76");
NameValuePair cookietime = new NameValuePair("cookietime","2592000");
NameValuePair loginfield = new NameValuePair("loginfield","username");
NameValuePair username = new NameValuePair("username","tianxiadagui");
NameValuePair password = new NameValuePair("password","321456789");
pMethod.setRequestBody(new NameValuePair[] {formhash,cookietime,loginfield,username,password});
client.executeMethod(pMethod);
GetMethod gMethod=new GetMethod("http://www.tmdss.com/post.php?action=newthread&fid=38&extra=page%3D1");
client.executeMethod(gMethod);
// Cookie[] cookies = client.getState().getCookies();
// client.getState().addCookies(cookies);
Cookie[] cookies = client.getState().getCookies();
String x8c_sid=null;
x8c_sid=cookies[0].toString();
for(int i=0;i<cookies.length;i++){
System.out.println(cookies[i]);
}
client.getState().addCookies(cookies);
gMethod.releaseConnection();
PostMethod pMethod0=new PostMethod("http://www.tmdss.com/post.php?action=newthread&fid=24&extra=page%3D1&topicsubmit=yes");
NameValuePair formhash0 = new NameValuePair("formhash","e8f391a4");
NameValuePair x8c_sid0 = new NameValuePair("x8c_sid",x8c_sid);
NameValuePair frombbs = new NameValuePair("frombbs","1");
NameValuePair typeid = new NameValuePair("typeid","52");
NameValuePair subject = new NameValuePair("subject","看下能成功啵");
NameValuePair message = new NameValuePair("message","看下能成功啵。");
NameValuePair readperm = new NameValuePair("readperm","0");
NameValuePair price = new NameValuePair("price","0");
NameValuePair wysiwyg = new NameValuePair("wysiwyg","1");
pMethod0.setRequestBody(new NameValuePair[] {formhash0,x8c_sid0,frombbs,typeid,subject,message,readperm,price,wysiwyg});
int state=client.executeMethod(pMethod0);
System.out.println(state);
System.out.println(new String(pMethod0.getResponseBodyAsString().getBytes("ISO-8859-1")));
pMethod.releaseConnection();
}
}
=======================================================
报错
您的请求来路不正确或验证字串不符,无法提交。如果您安装了某种默认屏蔽来路信息的个人防火墙软件(如 Norton Internet Security),请设置其不要禁止来路信息后再试。
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;public class Test {
public static void main(String[] args) throws HttpException, IOException {
HttpClient client=new HttpClient();
client.getHostConfiguration().setHost("http://www.tmdss.com/",80);
PostMethod pMethod=new PostMethod("http://www.tmdss.com/logging.php?action=login&loginsubmit=true");
NameValuePair formhash = new NameValuePair("formhash","16db2c76");
NameValuePair cookietime = new NameValuePair("cookietime","2592000");
NameValuePair loginfield = new NameValuePair("loginfield","username");
NameValuePair username = new NameValuePair("username","tianxiadagui");
NameValuePair password = new NameValuePair("password","321456789");
pMethod.setRequestBody(new NameValuePair[] {formhash,cookietime,loginfield,username,password});
client.executeMethod(pMethod);
GetMethod gMethod=new GetMethod("http://www.tmdss.com/post.php?action=newthread&fid=38&extra=page%3D1");
client.executeMethod(gMethod);
// Cookie[] cookies = client.getState().getCookies();
// client.getState().addCookies(cookies);
Cookie[] cookies = client.getState().getCookies();
String x8c_sid=null;
x8c_sid=cookies[0].toString();
for(int i=0;i<cookies.length;i++){
System.out.println(cookies[i]);
}
client.getState().addCookies(cookies);
gMethod.releaseConnection();
PostMethod pMethod0=new PostMethod("http://www.tmdss.com/post.php?action=newthread&fid=24&extra=page%3D1&topicsubmit=yes");
NameValuePair formhash0 = new NameValuePair("formhash","e8f391a4");
NameValuePair x8c_sid0 = new NameValuePair("x8c_sid",x8c_sid);
NameValuePair frombbs = new NameValuePair("frombbs","1");
NameValuePair typeid = new NameValuePair("typeid","52");
NameValuePair subject = new NameValuePair("subject","看下能成功啵");
NameValuePair message = new NameValuePair("message","看下能成功啵。");
NameValuePair readperm = new NameValuePair("readperm","0");
NameValuePair price = new NameValuePair("price","0");
NameValuePair wysiwyg = new NameValuePair("wysiwyg","1");
pMethod0.setRequestBody(new NameValuePair[] {formhash0,x8c_sid0,frombbs,typeid,subject,message,readperm,price,wysiwyg});
int state=client.executeMethod(pMethod0);
System.out.println(state);
System.out.println(new String(pMethod0.getResponseBodyAsString().getBytes("ISO-8859-1")));
pMethod.releaseConnection();
}
}
=======================================================
报错
您的请求来路不正确或验证字串不符,无法提交。如果您安装了某种默认屏蔽来路信息的个人防火墙软件(如 Norton Internet Security),请设置其不要禁止来路信息后再试。
这个错误主要是Discuz验证sid时,发现每次提交的form的sid跟登陆时的sid不一致而导致的这个错误,我现在就是不知道怎么去修改了,因为刚用httpClient
你有打印语句,照例说有信息打印,
比如说你的cookie有个循环打印,
看有没有执行
■□■□■□■□■□■□■□■
□ □
■ 忍以明志 勤以致远 ■
□ □
■□■□■□■□■□■□■□■
基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)
是的 这个就是服务器返回来的信息 因为Discuz做了发帖限制 所以才会出现这种情况
要解决这个问题,建议 从web server上找问题,看它哪种情况会返回这个信息,然后对症下药。