该页面上的代码:
<form name="customerForm" method="post" action="/customer/setParameter.do" onsubmit="return validateForm(this) && !isGreaterThanToday();"><div><input type="hidden" name="org.apache.struts.taglib.html.TOKEN" value="1750e99c3269fce42bd87c3952484a4c"></div>
交易日期
<input type="text" name="tradeDate" maxlength="10" size="10" value="">
<script language="JavaScript" type="text/javascript">
document.forms["customerForm"].elements["tradeDate"].value='2011-01-07';
</script>
<script language="JavaScript" type="text/javascript">
function fPopUpCalendarDlg(ctrlobj)
{
showx = event.screenX - event.offsetX - 4 - 210 ; // + deltaX;
showy = event.screenY - event.offsetY + 18; // + deltaY;
newWINwidth = 210 + 4 + 18;
var retval=window.open("/CalendarDlg.htm", "", "Width=185px, Height=250px,Left="+showx+"px, Top="+showy+"px" );
retval.obj=ctrlobj
}
</script>
<IMG style="CURSOR: hand"
onclick="fPopUpCalendarDlg(document.customerForm.tradeDate);return false"
height=16 src="/img/calendar.gif" width=16
align=absMiddle> 盈亏计算方式
<select name="byType"><option value="date">逐日盯市</option><option value="trade">逐笔对冲</option></select> <script language="JavaScript" type="text/javascript">
document.forms["customerForm"].elements["byType"].value='trade';
</script>
<input type="submit" value="提交" class="button">
</form>
对应这块代码,我执行HttpWebRequest Post 的代码如下:
ASCIIEncoding encoding = new ASCIIEncoding();
string postData = "tradeDate=" + dt.Year.ToString() + "-" + dt.Month.ToString() + "-" + dt.Day.ToString();
postData += ("&byType=" + calculateKind);
postData += ("&org.apache.struts.taglib.html.TOKEN=" + hideToken); byte[] data = encoding.GetBytes(postData); // Prepare web request...
HttpWebRequest myRequest =
(HttpWebRequest)WebRequest.Create(domain + "/customer/setParameter.do");
myRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)";
myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length; if (myRequest.CookieContainer == null)
{
myRequest.CookieContainer = new CookieContainer();
}
if (inputCC != null)
{
myRequest.CookieContainer.Add(inputCC);
}
Stream newStream = myRequest.GetRequestStream(); // Send the data.
newStream.Write(data, 0, data.Length);
newStream.Close(); // Get response
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
outputCC = myResponse.Cookies; StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
string content = reader.ReadToEnd();1. 结果我的代码反回空字符即 content为空。 而如果通过IE来点击"提交"按钮,则页面转到了其他页面上去。这是第一个问题?
2. 实际上上面的POST实际上是上传了参数到服务器中,为什么通过IE点击"提交"按钮能够成功的修改了参数,而我用HttpWebRequest 却不能成功修改?
<form name="customerForm" method="post" action="/customer/setParameter.do" onsubmit="return validateForm(this) && !isGreaterThanToday();"><div><input type="hidden" name="org.apache.struts.taglib.html.TOKEN" value="1750e99c3269fce42bd87c3952484a4c"></div>
交易日期
<input type="text" name="tradeDate" maxlength="10" size="10" value="">
<script language="JavaScript" type="text/javascript">
document.forms["customerForm"].elements["tradeDate"].value='2011-01-07';
</script>
<script language="JavaScript" type="text/javascript">
function fPopUpCalendarDlg(ctrlobj)
{
showx = event.screenX - event.offsetX - 4 - 210 ; // + deltaX;
showy = event.screenY - event.offsetY + 18; // + deltaY;
newWINwidth = 210 + 4 + 18;
var retval=window.open("/CalendarDlg.htm", "", "Width=185px, Height=250px,Left="+showx+"px, Top="+showy+"px" );
retval.obj=ctrlobj
}
</script>
<IMG style="CURSOR: hand"
onclick="fPopUpCalendarDlg(document.customerForm.tradeDate);return false"
height=16 src="/img/calendar.gif" width=16
align=absMiddle> 盈亏计算方式
<select name="byType"><option value="date">逐日盯市</option><option value="trade">逐笔对冲</option></select> <script language="JavaScript" type="text/javascript">
document.forms["customerForm"].elements["byType"].value='trade';
</script>
<input type="submit" value="提交" class="button">
</form>
对应这块代码,我执行HttpWebRequest Post 的代码如下:
ASCIIEncoding encoding = new ASCIIEncoding();
string postData = "tradeDate=" + dt.Year.ToString() + "-" + dt.Month.ToString() + "-" + dt.Day.ToString();
postData += ("&byType=" + calculateKind);
postData += ("&org.apache.struts.taglib.html.TOKEN=" + hideToken); byte[] data = encoding.GetBytes(postData); // Prepare web request...
HttpWebRequest myRequest =
(HttpWebRequest)WebRequest.Create(domain + "/customer/setParameter.do");
myRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)";
myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length; if (myRequest.CookieContainer == null)
{
myRequest.CookieContainer = new CookieContainer();
}
if (inputCC != null)
{
myRequest.CookieContainer.Add(inputCC);
}
Stream newStream = myRequest.GetRequestStream(); // Send the data.
newStream.Write(data, 0, data.Length);
newStream.Close(); // Get response
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
outputCC = myResponse.Cookies; StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
string content = reader.ReadToEnd();1. 结果我的代码反回空字符即 content为空。 而如果通过IE来点击"提交"按钮,则页面转到了其他页面上去。这是第一个问题?
2. 实际上上面的POST实际上是上传了参数到服务器中,为什么通过IE点击"提交"按钮能够成功的修改了参数,而我用HttpWebRequest 却不能成功修改?
解决方案 »
- C#.NET 在窗体中画图
- System.CodeDom执行javascript语言
- 上传文件的时候限制文件长度的问题
- 面试被问到的一个问题:你们是怎么做单元测试的?用什么单元测试工具了?
- 为何无返回的数据?
- 200分相赠,先送100,搞定后再开帖送100,执行Server.Transfer时提示执行子请求时出错,请各位csdn大爷不吝赐教!!!!!!
- 求助!! 急!!
- SqlDependency 的 HasChanges 属性如何使用?
- 如何恢复.mdf数据库?
- 大哥大姐们,帮帮我,关于dataGrid问题?
- WCF中使用Stream来传送文件,应该如何通知进度?
- c#写的斗地主单机游戏怎样判断电脑出牌?求思路。。。
IE页面的源代码太长了,我把它保存在文件中http://www.qh888.net/tt.htm中,
希望哪位大侠,帮我研究研究,看看还缺哪些信息没有POST上!
或webbrower点击按钮提交是否一致