问题描述
如图:我模拟请求一个网站,模拟登录后得到cookie想请求图中登录后的页面出错了出错信息:Theremoteserverreturnedanerror:(500)InternalServerError.<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Draft//EN"><HTML><HEAD><TITLE>Error500--InternalServerError</TITLE><METANAME="GENERATOR"CONTENT="WebLogicServer"></HEAD><BODYbgcolor="white"><FONTFACE=Helvetica><BRCLEAR=all><TABLEborder=0cellspacing=5><TR><TD><BRCLEAR=all><FONTFACE="Helvetica"COLOR="black"SIZE="3"><H2>Error500--InternalServerError</H2></FONT></TD></TR></TABLE><TABLEborder=0width=100%cellpadding=10><TR><TDVALIGN=topWIDTH=100%BGCOLOR=white><FONTFACE="CourierNew"><FONTFACE="Helvetica"SIZE="3"><H3>FromRFC2068<i>HypertextTransferProtocol--HTTP/1.1</i>:</H3></FONT><FONTFACE="Helvetica"SIZE="3"><H4>10.5.1500InternalServerError</H4></FONT><P><FONTFACE="CourierNew">Theserverencounteredanunexpectedconditionwhichpreventeditfromfulfillingtherequest.</FONT></P></FONT></TD></TR></TABLE></BODY></HTML>登录后其它的get请求可以活的html唯有这个post请求不行
解决方案
解决方案二:
这个网站在ie浏览器中打开一切正常,所有页面都可以浏览。CookieContainercCurrent=newCookieContainer();Uriu=newUri(url);cCurrent.Add(u,newCookie("JSESSIONID",jsessionId));cCurrent.Add(u,newCookie("logonUsername","88882"));if(P3p!=null){cCurrent.Add(u,newCookie("P3P",P3p));}HttpWebRequestrequest=(HttpWebRequest)WebRequest.Create(url);UTF8Encodingencoding=newUTF8Encoding();//ASCIIEncodingencoding=newASCIIEncoding();byte[]data=encoding.GetBytes(postdata);//post方式的编码request.Headers.Clear();request.Method="POST";//必须为大写,不然会出错request.ContentType="application/x-www-form-urlencoded";//request.ContentType="text/html;charset=UTF-8";request.ContentLength=data.Length;request.KeepAlive=true;request.CookieContainer=cCurrent;request.Timeout=3000;//超时时间//request.se//提交请求stream=request.GetRequestStream();stream.Write(data,0,data.Length);stream.Close();//接收stringresult="";HttpWebResponseresponse=(HttpWebResponse)request.GetResponse();if(response.StatusCode!=HttpStatusCode.OK)return"";//StreamReaderstreamReader=newStreamReader(response.GetResponseStream(),Encoding.GetEncoding("utf-8"));//StreamReaderstreamReader=newStreamReader(response.GetResponseStream(),Encoding.UTF8);StreamReaderstreamReader=newStreamReader(response.GetResponseStream(),Encoding.UTF8);result=streamReader.ReadToEnd();request.Abort();response.Close();streamReader.Close();
HttpWebResponseresponse=(HttpWebResponse)request.GetResponse();在模拟请求这个post请求时候这行就报错了!
解决方案三:
或许这个页面不支持Post请求,或许会验证refer地址,不确定
解决方案四:
检查你提交的参数和浏览器的有什么不同。500错误发生在服务器端,很难说。
解决方案五:
如图这是抓包工具抓到要post的数据如下是我提交的post数据应该没有问题sbParam=newStringBuilder();sbParam.Append("action=queryData");sbParam.Append("&activeName=");sbParam.Append("&alarm_time=");sbParam.Append("&appId=");sbParam.Append("&attemper_reason=");sbParam.Append("&backed_reason=");sbParam.Append("&backed_way=");sbParam.Append("&backedReasonCode=");sbParam.Append("&backedReasonName=");sbParam.Append("&backSteps=");sbParam.Append("&backType=");sbParam.Append("&due_time=1");sbParam.Append("&field1=");sbParam.Append("&isQuery=N");sbParam.Append("&isquerydata=N");sbParam.Append("&lockType=10");sbParam.Append("&overReason=");sbParam.Append("&postAllField={"=":{},"@":{lockType:"10"},"Q":{query:"N"}}");sbParam.Append("&postStr=");sbParam.Append("&processTitle=");sbParam.Append("&refreshCondition=Y");sbParam.Append("&scheduleSteps=");sbParam.Append("&sysUser=88882");sbParam.Append("&tabpage=main");sbParam.Append("&taskId=");sbParam.Append("&terminate_reason=");sbParam.Append("&viewCond=");sbParam.Append("&viewfield=");sbParam.Append("&viewStr=");sbParam.Append("&worklistPagination_colname=");sbParam.Append("&worklistPagination_pageno=1");sbParam.Append("&worklistPagination_pagesize=15");sbParam.Append("&worklistPagination_sid=null");sbParam.Append("&worklistPagination_sorttype=");
那网站用的是weblogic服务器,是不是服务器那里限制了什么,不让我模拟post请求。
解决方案六:
加上User-Agent,Referer
解决方案七:
熟悉post模拟,有需要联系
解决方案八:
引用6楼QQ234788028的回复:
熟悉post模拟,有需要联系
邮箱多少啊我邮箱13813043417@139.com
解决方案九:
引用7楼WorkOnline的回复:
Quote: 引用6楼QQ234788028的回复:
熟悉post模拟,有需要联系邮箱多少啊我邮箱13813043417@139.com
貌似要收你钱的
解决方案十:
引用8楼yadmek的回复:
Quote: 引用7楼WorkOnline的回复:
Quote: 引用6楼QQ234788028的回复:
熟悉post模拟,有需要联系邮箱多少啊我邮箱13813043417@139.com
貌似要收你钱的
--要不要这样!
解决方案十一:
引用8楼yadmek的回复:
Quote: 引用7楼WorkOnline的回复:
Quote: 引用6楼QQ234788028的回复:
熟悉post模拟,有需要联系邮箱多少啊我邮箱13813043417@139.com
貌似要收你钱的
难道是无偿服务吗?那你来哦
解决方案十二:
引用10楼QQ234788028的回复:
Quote: 引用8楼yadmek的回复:
Quote: 引用7楼WorkOnline的回复:
Quote: 引用6楼QQ234788028的回复:
熟悉post模拟,有需要联系邮箱多少啊我邮箱13813043417@139.com
貌似要收你钱的
难道是无偿服务吗?那你来哦
联系方式多少
解决方案十三:
引用11楼WorkOnline的回复:
Quote: 引用10楼QQ234788028的回复:
Quote: 引用8楼yadmek的回复:
Quote: 引用7楼WorkOnline的回复:
Quote: 引用6楼QQ234788028的回复:
熟悉post模拟,有需要联系邮箱多少啊我邮箱13813043417@139.com
貌似要收你钱的
难道是无偿服务吗?那你来哦
联系方式多少
ID那么大写着qq号,眼睛看哪里