httpwebrequest问题

问题描述

如图:我模拟请求一个网站,模拟登录后得到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号,眼睛看哪里

时间: 2025-01-21 00:39:06

httpwebrequest问题的相关文章

新浪Flash下载器 [HttpWebRequest | 新浪视频]

前言      哈哈,好久不写小工具了,去年写的笨笨图片批量下载器 V0.3 beta平时还是帮了一些忙的,今天的小工具是 新浪Flash下载器 .可以直接下载swf结尾的文件,如果下载新浪视频文件,你需要右键源代码找到这个flash的伪链接,如http://music.sina.com.cn/yueku/flashPlayer.swf?vid=6851105,然后把这里连接复制到软件输入框点下载就可以了.   运行环境      1.     Microsoft .NET Framework

[C#]用HttpWebRequest加载证书建立SSL通道时发生异常的解决办法

编写者:郑昀@UltraPower 关键字:HttpWebRequest, SSL,X509Certificate dotNet  Framwork 1.1 编写时间:2005-3-29 WSE 2.0 SP3   目的: 对于用HttpWebRequest加载证书请求远端https服务器时,发生的 "基础连接已经关闭: 无法与远程服务器建立信任关系."/ "The underlying connection was closed. Could not establish a

笨笨图片批量下载器 V0.3 beta[C# | WinForm | 正则表达式 | HttpWebRequest | Async异步编程] new

前言      从[笨笨图片批量抓取下载 V0.2 beta]到[笨笨图片批量下载器 V0.3 beta]时间将近2个月,不是说这个升级版本开发了这么久,实在是懒,呵呵: )再加有时候工作忙.学习,多的时间就不愿意动了,现在都感觉辜负了上一版N多朋友的支持了,不过这将近一个星期时间我按计划完成了这个小软件版的升级开发,并且依然和上两个版本一样保持源代码开源,文章最后有下载地址,以下是这个版本相比上个版本的特点:      1.     加入图片是否重命名.      2.     加入异步线程池

使用HttpWebRequest向网站模拟上传数据

request|web|上传|数据 最近有个朋友离开IT行业二年的朋友说要实现用程序向某个网站的页面上传数据,他是意思是每天有几十条数据要在网站页面上填写,很烦,最好用程序来写.网站页面是用POST传递的,同时没有验证码之类的东东,只有一点限制就是5分种内不能填写二次记录.这一切都好办. using System.Web;using System.Net;using System.Text;using System.IO; //创建对某个网站页面的请求 HttpWebRequest  myReq

HttpWebRequest的GetRespons偶尔超时和死掉的原因及解决办法

在做一个接口的时候,部分需求时根据用户指定的Url,通过Post方式来发送数据,之前的多次调试,一直都是可以正常发送数据获取返回值,但是后来几次的调试,在没有改变代码的前提下,结果GetResponse却始终会超时死掉. 经过上网百度一共找出了下面几种原因与对应的解决办法: 1.修改DefaultConnectionLimit 为更大的值(系统默认为2) System.Net.ServicePointManager.DefaultConnectionLimit = 50; 2.在HttpWebR

Windows Phone网络HttpWebRequest的用法简介

在Windows Phone系统中,通过HttpWebRequest类可以很容易的发送网络请求,获取网络数据.HttpWebRequest是异步操作,不会堵塞主线程. 1.通过HttpWebRequest.CreateHttp()方法可以创建一个HttpWebRequest,下面代码简单实现发送一个GET请求. httpGet public void httpGet() { try { //请求地址 String url = "http://www.cnblogs.com/huizhang212

c#使用HttpWebRequest,HttpWebResponse快速验证代理IP是否有用

大家好,相信大家都使用过代理IP上过网,但是有的IP一两天就失效了.要一个一个的手工去试打开IE,关闭IE,多烦啊. 有了这篇文章就好了.我们可以使用HttpWebRequest,HttpWebResponse 来代理验证,谢谢大家评论指导! 呵呵,是不是很简单啊,其实这段代码改一下还可以做采集器,小偷等程序!我不说了大家自己看 public void yanzhen(string str, int port) { WebProxy proxyObject = new WebProxy(str,

C#中使用HttpWebRequest类调用WEB服务的示例

上一篇文章是关于 CMPP3.0 的 C# 实现,我为了测试其中的 PROVISION 接口,利用了 System.Net.HttpWebRequest 类将<MISC系统短信SP接入指南-接口改造分册>文档中的示例 xml 发送到了 WEB 服务,并从 WEB 服务返回了对应的 Resp 包(也是一段 xml),下面就将代码贴出来: 1.SyncOrderRelationReq 包的 xml 内容: <SOAP-ENV:Envelope xmlns:xsi="http://w

.NET Compact Framework下HttpWebRequest开发

当Windows Mobile程序需要使用Web Server的信息,一开始自然会想到使用WebService.可是有些Web Server不提供WebService,只是提供Http浏览功能,如果需要从Http网页中得到信息,可以使用HttpWebRequest和HttpWebResponse来完成,下面通过一个例子来讲述. 例如有一个使用ASP.net开发的燃料价格查询网站. 图1 输入燃料类型(Fuel Type)和邮政编码(Postcode)后可以查询出燃料价格,如下图. 图2 在Win

使用MemberShip时 用HttpWebRequest抓数据

最近在做一个项目,因为是分层设计,为了各层之间解耦,我们采用了HttpWebRequest来抓取同域下 的文件数据(动态生成的)来生成新的对象.我们生成数据页的handler都是以.do结尾的,以示区分.但是 这也带来了问题,在使用HttpWebRequest抓数据时,通不过验证.但是我们使用AJAX同样也是.do结尾的啊, 却可以使用,奇怪!网上找Membership的验证原理,资料及其缺乏.多是设置cookie之类的,也试了好多次,均 不奏效!事实也证明,当我们禁用cookie时,membe