关于利用WebRequest向一个网站发送数据,网站用QueryString接收不到参数的问题,高手请进,急????????????????????

ProgrammerTopLee 2011-06-12 01:27:27
之前这个朋友也遇到了这个问题,请看:
http://topic.csdn.net/u/20081225/11/c059aee2-1547-470f-963d-d094f9ccc8ff.html

我参照他这个写法,做法如下:

//发出方 http://localhost:2401/demo/send.aspx
string strData = "?name=1234";
byte[] data = Encoding.UTF8.GetBytes(strData);
WebRequest request = WebRequest.Create("http://localhost:2401/demo/target.aspx");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
Stream MyStream = request.GetRequestStream();
MyStream.Write(data, 0, data.Length);
MyStream.Close();

//接收方 http://localhost:2401/demo/target.aspx
Page_Load事件使用Request.Form["name"]、Request.Params["name"]、Request["name"]
怎么都获取不到值?
...全文
131 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
机器人 2011-06-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ilooknow 的回复:]

WebRequest request = WebRequest.Create("http://localhost:2401/demo/target.aspx?name=1234");
就行了。
[/Quote]

这是 GET, 服务端用 Request.QueryString["name"] 取
如果是用 POST, 服务端用 Request["name"] 取

你原来的就没啥问题,把你服务端代码贴出来看看。
确认下访问的端口是否变了?
ProgrammerTopLee 2011-06-12
  • 打赏
  • 举报
回复
真想找到这个楼主
http://topic.csdn.net/u/20081225/11/c059aee2-1547-470f-963d-d094f9ccc8ff.html
不知道他是怎么解决的,我快死了。
porschev 2011-06-12
  • 打赏
  • 举报
回复

不知道http://localhost:2401/demo/target

这种形式的会不会不认为是有效的URI

ProgrammerTopLee 2011-06-12
  • 打赏
  • 举报
回复
这样不行
string strData = "";
byte[] data = Encoding.UTF8.GetBytes(strData);
WebRequest request = WebRequest.Create("http://localhost:2401/demo/target.aspx?name=1234");

下面这样也不行
string strData = "1234";
byte[] data = Encoding.UTF8.GetBytes(strData);
WebRequest request = WebRequest.Create("http://localhost:2401/demo/target.aspx?name=");

还有下面这样都不行
string strData = "name=1234";
byte[] data = Encoding.UTF8.GetBytes(strData);
WebRequest request = WebRequest.Create("http://localhost:2401/demo/target.aspx?"+strData);
chengzq 2011-06-12
  • 打赏
  • 举报
回复
我找到一个老外的博客:
貌似他也没有提到:
http://ramto.com/blog/post/WebRequest-and-WebResponse-using-query-string.aspx
chengzq 2011-06-12
  • 打赏
  • 举报
回复

string strData = "";
byte[] data = Encoding.UTF8.GetBytes(strData);
WebRequest request = WebRequest.Create("http://localhost:33766/target.aspx?name=12345678");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
Stream stream = request.GetRequestStream();
stream.Write(data, 0, data.Length);
stream.Close();



参数还是得写在Create()方法中,放在strData中,就取得不到,我怀疑是“?”这个特殊符号的原因
子夜__ 2011-06-12
  • 打赏
  • 举报
回复
string strData = "?name=1234";

?去掉。不需要
whycom 2011-06-12
  • 打赏
  • 举报
回复
string strData = "name=1234";
ProgrammerTopLee 2011-06-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ilooknow 的回复:]
WebRequest request = WebRequest.Create("http://localhost:2401/demo/target.aspx?name=1234");
就行了。
[/Quote]
按照这个来,写成下面这样还是不行

string strData = "?name=1234";
byte[] data = Encoding.UTF8.GetBytes(strData);
WebRequest request = WebRequest.Create("http://localhost:2401/demo/target.aspx?name=1234");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
Stream MyStream = request.GetRequestStream();
MyStream.Write(data, 0, data.Length);
MyStream.Close();

为什么?
ilooknow 2011-06-12
  • 打赏
  • 举报
回复
WebRequest request = WebRequest.Create("http://localhost:2401/demo/target.aspx?name=1234");
就行了。

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧