C# 发送数据提示 远程服务器返回错误: (500) 内部服务器错误
我有个发帖的/// </summary>
/// <param name="strUrl">发包的网址是:http://grouppix.bokee.com/post/upload.fcgi </param>
/// <param name="strHand">原始标题</param>
/// <param name="strThing">要提交的文本内容</param>
public string GetSubmit(string strUrl,string strHand,string strThing)
{
StringBuilder sb = new StringBuilder();
try
{
var req = (HttpWebRequest)WebRequest.Create(strUrl);
//边界字符
var boundary = "------WebKitFormBoundary" + DateTime.Now.Ticks.ToString("x");
//边界字符
var beginBoundary = boundary + "\r\n";
//最后的字符
var endBoundary = boundary + "--\r\n";
string fileHeader =
beginBoundary + "Content-Disposition: form-data; name=\"Pub\"\r\n\r\n" +
"提交"+"\r\n" + boundary + "\r\n" + "Content-Disposition: form-data; name=\"title\"\r\n\r\n" +
strHand + "\r\n" + boundary + "\r\n" + "Content-Disposition: form-data; name=\"value\"\r\n\r\n" +
strThing+ "\r\n" + boundary + "\r\n" + "Content-Disposition: form-data; name=\"groupId\"\r\n\r\n" +
"73667" + "\r\n" + endBoundary;
byte[] data = Encoding.ASCII.GetBytes(fileHeader);
req.Method = "POST";
req.KeepAlive = true;
req.Referer = "http://group.bokee.com/group/forumnew.action?groupId=73667";
req.Host = "grouppix.bokee.com";
req.ContentLength = data.Length;
req.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.205 Safari/534.16";
req.ContentType = "multipart/form-data; boundary=" + boundary;
req.Accept = "application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
req.Headers.Add("Cache-Control", "max-age=0");
req.Headers.Add("Origin", "http://group.bokee.com");
req.Headers.Add("Accept-Encoding", "gzip,deflate,sdch");
req.Headers.Add("Accept-Language", "zh-CN,zh;q=0.8");
req.Headers.Add("Accept-Charset", "GBK,utf-8;q=0.7,*;q=0.3");
req.CookieContainer = _cookie;
Stream meStream = req.GetRequestStream();
meStream.Write(data, 0, data.Length);
meStream.Close();
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream(), Encoding.Default );
_cookie.Add(res.Cookies);
sb.Append(sr.ReadToEnd());
res.Close();
req.Abort();
}
catch (Exception ex)
{
sb.Remove(0, sb.Length);
sb.Append("FindErr000001:" + ex.Message);
}
return sb.ToString();
}
用户号是:ttyykk3 密码000000
现在就是运行到HttpWebResponse res = (HttpWebResponse)req.GetResponse();这里就会提示
远程服务器返回错误: (500) 内部服务器错误
调了好久没补知道原因,希望遇到高手帮忙下 --------------------编程问答-------------------- data字节数组有内容嘛??? --------------------编程问答--------------------
HttpWebResponse res;
try
{
res = (HttpWebResponse)req.GetResponse();
}
catch (WebException ex)
{
res = (HttpWebResponse)ex.Response;
}
StreamReader sr = new StreamReader(res.GetResponseStream(), Encoding.Default);
sb.Append(sr.ReadToEnd());
return sb.ToString();
具体参考这里
http://www.cnblogs.com/cresuccess/archive/2009/12/09/1619977.html --------------------编程问答-------------------- 如果你请求的这个页面正好是一个有异常发生的页面,或者不存在的页面。那么你上面的代码就会在
req.GetResponse();
处抛出异常:远程服务器返回错误: (500) 内部服务器错误。 --------------------编程问答-------------------- 是存在的页面,网页是http://group.bokee.com/group/forumnew.action?groupId=73667
但里面post的网址却不是这个,post的网址是http://grouppix.bokee.com/post/upload.fcgi --------------------编程问答-------------------- 我看了data数组里面有内容,内容是这样的 0 对应的是52
1 对应..131
2 对应 121
这只是打比方 --------------------编程问答-------------------- http://grouppix.bokee.com/post/upload.fcgi
这个地址是无法访问的吧,那就是不存在了。 --------------------编程问答-------------------- 这个是根据你的代码抛出的最后得到的值
<html>
<head><title>500 Servlet Exception</title></head>
<body>
<h1>500 Servlet Exception</h1>
<code><pre>
java.io.IOException: Corrupt form data: premature ending
at com.oreilly.servlet.multipart.MultipartParser.<init>(MultipartParser.java:205)
at com.oreilly.servlet.MultipartRequest.<init>(MultipartRequest.java:222)
at com.oreilly.servlet.MultipartRequest.<init>(MultipartRequest.java:173)
at net.sourceforge.stripes.controller.StripesRequestWrapper.<init>(StripesRequestWrapper.java:113)
at net.sourceforge.stripes.controller.StripesFilter.wrapRequest(StripesFilter.java:217)
at net.sourceforge.stripes.controller.StripesFilter.doFilter(StripesFilter.java:189)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
at com.bokee.web.DebugFilter.doFilter(DebugFilter.java:79)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
at org.apache.filter.CharsetFilter.doFilter(CharsetFilter.java:57)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:178)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
at com.caucho.server.hmux.HmuxRequest.handleRequest(HmuxRequest.java:419)
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:389)
at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:492)
at com.caucho.util.ThreadPool.run(ThreadPool.java:425)
at java.lang.Thread.run(Thread.java:595)
</pre></code>
<hr /><small>
Resin-3.0.18 (built Fri, 24 Feb 2006 02:47:03 PST)
</small>
</body></html>
--------------------编程问答-------------------- 可我登陆网页抓得数据你看,明明是这个网址啊,奇怪了啊
POST /post/upload.fcgi HTTP/1.1
Host: grouppix.bokee.com
Connection: keep-alive
Referer: http://group.bokee.com/group/forumnew.action?groupId=73667
Content-Length: 437
Cache-Control: max-age=0
Origin: http://group.bokee.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.205 Safari/534.16
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryBQaPBvBJQh2GuFM0
Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3
Cookie: vjuids=28c6da1b6.131e2cddb41.0.a4a5f0ec; __utma=59385918.361101666.1313805852.1313805852.1313805852.1; __utmc=59385918; __utmz=59385918.1313805852.1.1.utmcsr=groups.bokee.com|utmccn=(referral)|utmcmd=referral|utmcct=/; Hm_lvt_90e2aedc2b355023e0a0279022e90df9=1313809307329; Hm_lpvt_90e2aedc2b355023e0a0279022e90df9=1313809912983; bokie=dHR5eWtrMyx0dHl5a2szLmJva2VlLmNvbSwyMDQ5MjU4OSw0NzIwNTU2Myw1LFNhdCBBdWcgMjAgMTE6NDY6NDMgQ1NUIDIwMTEsMSw4NmY3ODAyMDBjNjliMjEwYjU3NzUwMTg0ZmIyYThjMg==; visitor=ttyykk3.bokee.com; vjlast=1313770167.1313770167.30
------WebKitFormBoundaryBQaPBvBJQh2GuFM0
Content-Disposition: form-data; name="Pub"
Ìá½»
------WebKitFormBoundaryBQaPBvBJQh2GuFM0
Content-Disposition: form-data; name="title"
Êǵķ¢ÉúµØ
------WebKitFormBoundaryBQaPBvBJQh2GuFM0
Content-Disposition: form-data; name="value"
·¢ÉúµØ
------WebKitFormBoundaryBQaPBvBJQh2GuFM0
Content-Disposition: form-data; name="groupId"
73667
------WebKitFormBoundaryBQaPBvBJQh2GuFM0--
--------------------编程问答-------------------- http://group.bokee.com/group/forumnew.action?groupId=73667
就是这个网址,号是:ttyykk3 密码是000000
我随便输入标题跟内容发帖的数据,现在就是出错,不知道怎么回事 --------------------编程问答--------------------
我这边可以的啊,我用的Firefox,刚用IE9试了一下,自动到登陆页面,而且输入你提供的用户名和密码,就一直在页面http://reg.bokee.com/account/web/navigator1.jsp处不走了。
看来可能是你UserAgent有问题,感觉。 --------------------编程问答-------------------- 网页登陆没问题呢,就是软件模拟登陆的时候有我问题,你那边模拟发帖能成功? --------------------编程问答--------------------
可以啊,我用这个号,发了一个贴,然后还回复了一个,你看看。
http://group.bokee.com/group/forumpost.action?groupId=73667&tid=13138174479771057&t=re¤t=1 --------------------编程问答-------------------- 啊,你是用我上面的代码实现的,还是直接在网页上实现的啊,我在直接在网页上也可以发帖啊,但用我软件的代码运行到那里就会出错 --------------------编程问答--------------------
那就换FF的,LZ的那个怎么看怎么像杂牌
Windows NT 6.1;
AppleWebKit/534.16
Chrome/10.0.648.205
Safari
--------------------编程问答-------------------- 刚才下了个ff浏览器,然后模拟发帖,还是失败,我郁闷,以前从来没遇到过这样的 --------------------编程问答-------------------- 瞎猜一下:莫不是LZ已经进入了别人的黑名单?
补充:.NET技术 , C#