以下是winform发送请求程序
PostData为发送到服务端的数据流
Stream reStream = null; //返回
cookie = null;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentType = "text/html; charset=gb2312";
request.KeepAlive = false;
request.Method = "POST";
request.AllowAutoRedirect = false;
request.CookieContainer = new CookieContainer();
byte[] buffer= new byte[postData.Length];
postData.Read(buffer, 0, buffer.Length);
request.ContentLength = buffer.Length;
Stream pstream = request.GetRequestStream();
pstream .Write(buffer, 0, buffer.Length);
pstream .Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
cookie = request.CookieContainer;
reStream = CopyStream(response.GetResponseStream());
return reStream;
47 个解决方案
#1
Request
#2
ding
#3
先顶
#4
学习
#5
学习
#6
再次顶
#7
服务端是什么??
#8
可以是网站啊
#9
如果服务器端是WebService就好做了,直接调用接口,返回数据
如果不是WebService, 发url请求后,Request接收到参数 服务器端以流的形式返会数据
如果不是WebService, 发url请求后,Request接收到参数 服务器端以流的形式返会数据
#10
如果是Web服务端,就用Request.Forms来获取!
#11
Request.Form[]
#12
不用WebService,能说的详细一些吗,给点代码看看。谢谢
#13
代码我手头也没有,思路就是这样的,服务器端接收到参数后,根据参数作不同做处理,然后Response.write(要返回的资源)
#14
不太了解这方面的,根据我上面的代码,服务器如何接收到啊,我想在服务器端写一个方法
处理传入的数据,并返回信息给请求者。
处理传入的数据,并返回信息给请求者。
#15
对就是这个思路
客户端通过url传递参数:例如你请求的地址是 http://www.163.com?type=画图
服务器端就 Request["type"] 参数
判断参数是什么做出不同响应
客户端通过url传递参数:例如你请求的地址是 http://www.163.com?type=画图
服务器端就 Request["type"] 参数
判断参数是什么做出不同响应
#16
Request.Form["控件id"]
#17
说的详细些,以前没用过这个,一头雾水啊,谢谢
#18
同意
#19
你去看一下在页面上提交一个form,Server端是怎么获取客户端的请求内容的。
你这里的客户端只是变成了你自己的winform而已
你这里的客户端只是变成了你自己的winform而已
#20
没用过asp.net,晕了
#21
客户端的post请求会触发服务端什么事件吗?
#22
等一天了,谁能给真正解决一下,详细说明一下。谢谢
#23
晕 还不知道啊!!
流程是这样的:
1 客户端向服务器发请求
CString url = "www.163.com/id=100";
WebRequest myWebRequest = WebRequest.Create(url);
myWebRequest.Timeout=10000;
2 服务器端受到请求
用 CString strid = request["id"];接收参数 如果url没有参数就不用接收
得到参数你做什么处理就是你的事了 然后 把处理后的数据 Response.wirte 出来
3
客户端收数据
WebResponse myWebResponse = myWebRequest.GetResponse();
Stream ReceiveStream = myWebResponse.GetResponseStream();
Encoding encode = System.Text.Encoding.GetEncoding(encoding);
StreamReader readStream = new StreamReader( ReceiveStream, encode );
readStream 就是从服务器端得到的数据 是图像是文字你自己操作吧
流程是这样的:
1 客户端向服务器发请求
CString url = "www.163.com/id=100";
WebRequest myWebRequest = WebRequest.Create(url);
myWebRequest.Timeout=10000;
2 服务器端受到请求
用 CString strid = request["id"];接收参数 如果url没有参数就不用接收
得到参数你做什么处理就是你的事了 然后 把处理后的数据 Response.wirte 出来
3
客户端收数据
WebResponse myWebResponse = myWebRequest.GetResponse();
Stream ReceiveStream = myWebResponse.GetResponseStream();
Encoding encode = System.Text.Encoding.GetEncoding(encoding);
StreamReader readStream = new StreamReader( ReceiveStream, encode );
readStream 就是从服务器端得到的数据 是图像是文字你自己操作吧
#24
2 服务器端受到请求
用 CString strid = request["id"];接收参数 如果url没有参数就不用接收
得到参数你做什么处理就是你的事了 然后 把处理后的数据 Response.wirte 出来
在什么事件中获取啊?
用 CString strid = request["id"];接收参数 如果url没有参数就不用接收
得到参数你做什么处理就是你的事了 然后 把处理后的数据 Response.wirte 出来
在什么事件中获取啊?
#25
Stream reStream = null; //返回
cookie = null;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentType = "text/html; charset=gb2312";
request.KeepAlive = false;
request.Method = "POST";
request.AllowAutoRedirect = false;
request.CookieContainer = new CookieContainer();
byte[] buffer= new byte[postData.Length];
postData.Read(buffer, 0, buffer.Length);
request.ContentLength = buffer.Length;
Stream pstream = request.GetRequestStream();
pstream .Write(buffer, 0, buffer.Length);
pstream .Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
cookie = request.CookieContainer;
reStream = CopyStream(response.GetResponseStream());
return reStream;
你看看上面的代码,我的请求中给服务器中传输的是数据流postData,我要在服务端获取该数据流,其实就是xml,我在服务端解析xml并处里,然后返回数据流。和你说的接收参数有关系吗?这个数据流如何获取,在什么服务器端什么事件获取,我一直不明白这个怎么处理。
cookie = null;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentType = "text/html; charset=gb2312";
request.KeepAlive = false;
request.Method = "POST";
request.AllowAutoRedirect = false;
request.CookieContainer = new CookieContainer();
byte[] buffer= new byte[postData.Length];
postData.Read(buffer, 0, buffer.Length);
request.ContentLength = buffer.Length;
Stream pstream = request.GetRequestStream();
pstream .Write(buffer, 0, buffer.Length);
pstream .Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
cookie = request.CookieContainer;
reStream = CopyStream(response.GetResponseStream());
return reStream;
你看看上面的代码,我的请求中给服务器中传输的是数据流postData,我要在服务端获取该数据流,其实就是xml,我在服务端解析xml并处里,然后返回数据流。和你说的接收参数有关系吗?这个数据流如何获取,在什么服务器端什么事件获取,我一直不明白这个怎么处理。
#26
代码应该没什么毛病,可以在.net里建个空页面 在page_load里作处理
#27
十分谢谢,但是
在page_load事件中Request.Form.Count=0;获取不到啊。
在page_load事件中Request.Form.Count=0;获取不到啊。
#28
关注,顶了
#29
mark
#30
顶上去
#31
再顶
#32
------
#33
顶上去
#34
顶上去
#35
继续顶上去
#36
大侠们快来啊,谁有好的解决办法啊,谢谢
#37
等待
#38
学习
#39
继续等待
#40
等待
#41
为了100分,还是说说话
我猜你的要求是通过HTTP POST 方式发送XML字符串到服务器端
如果是这样
request.ContentType = "application/x-www-form-urlencoded";
request.ContentType = "text/html; charset=gb2312";
改为
request.ContentType = "text/xml;";
可以在ASP.net里建个空页面 在page_load里作处理
处理代码大概如下
using (StreamReader readStream = new StreamReader(Request.InputStream, Encoding.Default))
{
result = readStream.ReadToEnd();
}
Response.Write(result);
我猜你的要求是通过HTTP POST 方式发送XML字符串到服务器端
如果是这样
request.ContentType = "application/x-www-form-urlencoded";
request.ContentType = "text/html; charset=gb2312";
改为
request.ContentType = "text/xml;";
可以在ASP.net里建个空页面 在page_load里作处理
处理代码大概如下
using (StreamReader readStream = new StreamReader(Request.InputStream, Encoding.Default))
{
result = readStream.ReadToEnd();
}
Response.Write(result);
#42
JIE FEN
#43
谢谢,马上去试
#44
Client使用WinForm,发送使用WebHttpRequest,接收使用WebHttpResponse,这点没有问题。
Server应该使用Web Server,设立一个aspx页面,内容为空,在Page_Load事件处理。
如果发送的是http://xxx.xxx.xxx?req=画图这样的格式,使用Request.QueryString来获取,比如Request.QueryString["req"].ToString(),这样就获得了"画图"。注意,请使用Request.QueryString.AllKeys.Count>0来判断是否有参数,不然会出现Exception。回复请使用Response.Write(string Content)
如果发送的是Post,则使用Request.Form("Req"),这样就获得了"画图"这个字符串。
你的代码使用的是Post方法来传送数据。所以接收不到是正常的。以下为Get代码的实现,Url参数直接使用http://xxx.xxx.xxx?req=画图 这样的格式就可以了。
#region HttpGet function
/// <summary>
/// Post Data to a Url by Http Get Method
/// </summary>
/// <param name="Url">Destination Url</param>
/// <param name="TimeOut">Timeout in seconds</param>
/// <returns>Content of response</returns>
private static string HttpGet(string Url, int TimeOut)
{
string rawOutput = "";
//Prepare the WebRequest
HttpWebRequest Req = (HttpWebRequest)WebRequest.Create(Url);
Req.Timeout = TimeOut * 1000;
try
{
HttpWebResponse Resp = (HttpWebResponse)Req.GetResponse();
//Read Response
StreamReader RespReader = new StreamReader(Resp.GetResponseStream());
rawOutput = RespReader.ReadToEnd();
RespReader.Close();
}
catch (WebException Ex)
{
}
return rawOutput;
}
#endregion
Server应该使用Web Server,设立一个aspx页面,内容为空,在Page_Load事件处理。
如果发送的是http://xxx.xxx.xxx?req=画图这样的格式,使用Request.QueryString来获取,比如Request.QueryString["req"].ToString(),这样就获得了"画图"。注意,请使用Request.QueryString.AllKeys.Count>0来判断是否有参数,不然会出现Exception。回复请使用Response.Write(string Content)
如果发送的是Post,则使用Request.Form("Req"),这样就获得了"画图"这个字符串。
你的代码使用的是Post方法来传送数据。所以接收不到是正常的。以下为Get代码的实现,Url参数直接使用http://xxx.xxx.xxx?req=画图 这样的格式就可以了。
#region HttpGet function
/// <summary>
/// Post Data to a Url by Http Get Method
/// </summary>
/// <param name="Url">Destination Url</param>
/// <param name="TimeOut">Timeout in seconds</param>
/// <returns>Content of response</returns>
private static string HttpGet(string Url, int TimeOut)
{
string rawOutput = "";
//Prepare the WebRequest
HttpWebRequest Req = (HttpWebRequest)WebRequest.Create(Url);
Req.Timeout = TimeOut * 1000;
try
{
HttpWebResponse Resp = (HttpWebResponse)Req.GetResponse();
//Read Response
StreamReader RespReader = new StreamReader(Resp.GetResponseStream());
rawOutput = RespReader.ReadToEnd();
RespReader.Close();
}
catch (WebException Ex)
{
}
return rawOutput;
}
#endregion
#45
谢谢songcan(当爱已成往事)兄等的帮助,songcan(当爱已成往事)兄的方法基本可以,
我如何返回流呢,比如将我传入的流返回。
我如何返回流呢,比如将我传入的流返回。
#46
我的vs.net在调试时int型变量怎么都变成16进制表示了,能否改为10进制啊。
#47
学习,顶啊
#1
Request
#2
ding
#3
先顶
#4
学习
#5
学习
#6
再次顶
#7
服务端是什么??
#8
可以是网站啊
#9
如果服务器端是WebService就好做了,直接调用接口,返回数据
如果不是WebService, 发url请求后,Request接收到参数 服务器端以流的形式返会数据
如果不是WebService, 发url请求后,Request接收到参数 服务器端以流的形式返会数据
#10
如果是Web服务端,就用Request.Forms来获取!
#11
Request.Form[]
#12
不用WebService,能说的详细一些吗,给点代码看看。谢谢
#13
代码我手头也没有,思路就是这样的,服务器端接收到参数后,根据参数作不同做处理,然后Response.write(要返回的资源)
#14
不太了解这方面的,根据我上面的代码,服务器如何接收到啊,我想在服务器端写一个方法
处理传入的数据,并返回信息给请求者。
处理传入的数据,并返回信息给请求者。
#15
对就是这个思路
客户端通过url传递参数:例如你请求的地址是 http://www.163.com?type=画图
服务器端就 Request["type"] 参数
判断参数是什么做出不同响应
客户端通过url传递参数:例如你请求的地址是 http://www.163.com?type=画图
服务器端就 Request["type"] 参数
判断参数是什么做出不同响应
#16
Request.Form["控件id"]
#17
说的详细些,以前没用过这个,一头雾水啊,谢谢
#18
同意
#19
你去看一下在页面上提交一个form,Server端是怎么获取客户端的请求内容的。
你这里的客户端只是变成了你自己的winform而已
你这里的客户端只是变成了你自己的winform而已
#20
没用过asp.net,晕了
#21
客户端的post请求会触发服务端什么事件吗?
#22
等一天了,谁能给真正解决一下,详细说明一下。谢谢
#23
晕 还不知道啊!!
流程是这样的:
1 客户端向服务器发请求
CString url = "www.163.com/id=100";
WebRequest myWebRequest = WebRequest.Create(url);
myWebRequest.Timeout=10000;
2 服务器端受到请求
用 CString strid = request["id"];接收参数 如果url没有参数就不用接收
得到参数你做什么处理就是你的事了 然后 把处理后的数据 Response.wirte 出来
3
客户端收数据
WebResponse myWebResponse = myWebRequest.GetResponse();
Stream ReceiveStream = myWebResponse.GetResponseStream();
Encoding encode = System.Text.Encoding.GetEncoding(encoding);
StreamReader readStream = new StreamReader( ReceiveStream, encode );
readStream 就是从服务器端得到的数据 是图像是文字你自己操作吧
流程是这样的:
1 客户端向服务器发请求
CString url = "www.163.com/id=100";
WebRequest myWebRequest = WebRequest.Create(url);
myWebRequest.Timeout=10000;
2 服务器端受到请求
用 CString strid = request["id"];接收参数 如果url没有参数就不用接收
得到参数你做什么处理就是你的事了 然后 把处理后的数据 Response.wirte 出来
3
客户端收数据
WebResponse myWebResponse = myWebRequest.GetResponse();
Stream ReceiveStream = myWebResponse.GetResponseStream();
Encoding encode = System.Text.Encoding.GetEncoding(encoding);
StreamReader readStream = new StreamReader( ReceiveStream, encode );
readStream 就是从服务器端得到的数据 是图像是文字你自己操作吧
#24
2 服务器端受到请求
用 CString strid = request["id"];接收参数 如果url没有参数就不用接收
得到参数你做什么处理就是你的事了 然后 把处理后的数据 Response.wirte 出来
在什么事件中获取啊?
用 CString strid = request["id"];接收参数 如果url没有参数就不用接收
得到参数你做什么处理就是你的事了 然后 把处理后的数据 Response.wirte 出来
在什么事件中获取啊?
#25
Stream reStream = null; //返回
cookie = null;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentType = "text/html; charset=gb2312";
request.KeepAlive = false;
request.Method = "POST";
request.AllowAutoRedirect = false;
request.CookieContainer = new CookieContainer();
byte[] buffer= new byte[postData.Length];
postData.Read(buffer, 0, buffer.Length);
request.ContentLength = buffer.Length;
Stream pstream = request.GetRequestStream();
pstream .Write(buffer, 0, buffer.Length);
pstream .Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
cookie = request.CookieContainer;
reStream = CopyStream(response.GetResponseStream());
return reStream;
你看看上面的代码,我的请求中给服务器中传输的是数据流postData,我要在服务端获取该数据流,其实就是xml,我在服务端解析xml并处里,然后返回数据流。和你说的接收参数有关系吗?这个数据流如何获取,在什么服务器端什么事件获取,我一直不明白这个怎么处理。
cookie = null;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentType = "text/html; charset=gb2312";
request.KeepAlive = false;
request.Method = "POST";
request.AllowAutoRedirect = false;
request.CookieContainer = new CookieContainer();
byte[] buffer= new byte[postData.Length];
postData.Read(buffer, 0, buffer.Length);
request.ContentLength = buffer.Length;
Stream pstream = request.GetRequestStream();
pstream .Write(buffer, 0, buffer.Length);
pstream .Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
cookie = request.CookieContainer;
reStream = CopyStream(response.GetResponseStream());
return reStream;
你看看上面的代码,我的请求中给服务器中传输的是数据流postData,我要在服务端获取该数据流,其实就是xml,我在服务端解析xml并处里,然后返回数据流。和你说的接收参数有关系吗?这个数据流如何获取,在什么服务器端什么事件获取,我一直不明白这个怎么处理。
#26
代码应该没什么毛病,可以在.net里建个空页面 在page_load里作处理
#27
十分谢谢,但是
在page_load事件中Request.Form.Count=0;获取不到啊。
在page_load事件中Request.Form.Count=0;获取不到啊。
#28
关注,顶了
#29
mark
#30
顶上去
#31
再顶
#32
------
#33
顶上去
#34
顶上去
#35
继续顶上去
#36
大侠们快来啊,谁有好的解决办法啊,谢谢
#37
等待
#38
学习
#39
继续等待
#40
等待
#41
为了100分,还是说说话
我猜你的要求是通过HTTP POST 方式发送XML字符串到服务器端
如果是这样
request.ContentType = "application/x-www-form-urlencoded";
request.ContentType = "text/html; charset=gb2312";
改为
request.ContentType = "text/xml;";
可以在ASP.net里建个空页面 在page_load里作处理
处理代码大概如下
using (StreamReader readStream = new StreamReader(Request.InputStream, Encoding.Default))
{
result = readStream.ReadToEnd();
}
Response.Write(result);
我猜你的要求是通过HTTP POST 方式发送XML字符串到服务器端
如果是这样
request.ContentType = "application/x-www-form-urlencoded";
request.ContentType = "text/html; charset=gb2312";
改为
request.ContentType = "text/xml;";
可以在ASP.net里建个空页面 在page_load里作处理
处理代码大概如下
using (StreamReader readStream = new StreamReader(Request.InputStream, Encoding.Default))
{
result = readStream.ReadToEnd();
}
Response.Write(result);
#42
JIE FEN
#43
谢谢,马上去试
#44
Client使用WinForm,发送使用WebHttpRequest,接收使用WebHttpResponse,这点没有问题。
Server应该使用Web Server,设立一个aspx页面,内容为空,在Page_Load事件处理。
如果发送的是http://xxx.xxx.xxx?req=画图这样的格式,使用Request.QueryString来获取,比如Request.QueryString["req"].ToString(),这样就获得了"画图"。注意,请使用Request.QueryString.AllKeys.Count>0来判断是否有参数,不然会出现Exception。回复请使用Response.Write(string Content)
如果发送的是Post,则使用Request.Form("Req"),这样就获得了"画图"这个字符串。
你的代码使用的是Post方法来传送数据。所以接收不到是正常的。以下为Get代码的实现,Url参数直接使用http://xxx.xxx.xxx?req=画图 这样的格式就可以了。
#region HttpGet function
/// <summary>
/// Post Data to a Url by Http Get Method
/// </summary>
/// <param name="Url">Destination Url</param>
/// <param name="TimeOut">Timeout in seconds</param>
/// <returns>Content of response</returns>
private static string HttpGet(string Url, int TimeOut)
{
string rawOutput = "";
//Prepare the WebRequest
HttpWebRequest Req = (HttpWebRequest)WebRequest.Create(Url);
Req.Timeout = TimeOut * 1000;
try
{
HttpWebResponse Resp = (HttpWebResponse)Req.GetResponse();
//Read Response
StreamReader RespReader = new StreamReader(Resp.GetResponseStream());
rawOutput = RespReader.ReadToEnd();
RespReader.Close();
}
catch (WebException Ex)
{
}
return rawOutput;
}
#endregion
Server应该使用Web Server,设立一个aspx页面,内容为空,在Page_Load事件处理。
如果发送的是http://xxx.xxx.xxx?req=画图这样的格式,使用Request.QueryString来获取,比如Request.QueryString["req"].ToString(),这样就获得了"画图"。注意,请使用Request.QueryString.AllKeys.Count>0来判断是否有参数,不然会出现Exception。回复请使用Response.Write(string Content)
如果发送的是Post,则使用Request.Form("Req"),这样就获得了"画图"这个字符串。
你的代码使用的是Post方法来传送数据。所以接收不到是正常的。以下为Get代码的实现,Url参数直接使用http://xxx.xxx.xxx?req=画图 这样的格式就可以了。
#region HttpGet function
/// <summary>
/// Post Data to a Url by Http Get Method
/// </summary>
/// <param name="Url">Destination Url</param>
/// <param name="TimeOut">Timeout in seconds</param>
/// <returns>Content of response</returns>
private static string HttpGet(string Url, int TimeOut)
{
string rawOutput = "";
//Prepare the WebRequest
HttpWebRequest Req = (HttpWebRequest)WebRequest.Create(Url);
Req.Timeout = TimeOut * 1000;
try
{
HttpWebResponse Resp = (HttpWebResponse)Req.GetResponse();
//Read Response
StreamReader RespReader = new StreamReader(Resp.GetResponseStream());
rawOutput = RespReader.ReadToEnd();
RespReader.Close();
}
catch (WebException Ex)
{
}
return rawOutput;
}
#endregion
#45
谢谢songcan(当爱已成往事)兄等的帮助,songcan(当爱已成往事)兄的方法基本可以,
我如何返回流呢,比如将我传入的流返回。
我如何返回流呢,比如将我传入的流返回。
#46
我的vs.net在调试时int型变量怎么都变成16进制表示了,能否改为10进制啊。
#47
学习,顶啊