C#请求http向网页发送接收数据的方法
本文实例为大家分享了C#请求http向网页发送数据、网页接收,供大家参考,具体内容如下
首先,我们需要的是什么东西?
用POST方式请求http,给网页传输数据,网页接收到数据之后,把数据存储到数据库中。
1.首先请求http,建立连接,把转码过的数据传输过去
2.网页接收数据,在转码之后存储到数据库
3.网页返回一个东西给传输方,表示我们已经接收到数据了
同样,我们请求http也是用的控制台模拟的
staticvoidMain(string[]args)
{
stringresult=Post("http://localhost:5534/Home/ToUrl","家庭");
Console.WriteLine(result);
Console.ReadKey();
}
///
///指定Post地址使用Get方式获取全部字符串
///
///请求后台地址
///Post提交数据内容(utf-8编码的)
///结果
publicstaticstringPost(stringurl,stringcontent)
{
//申明一个容器result接收数据
stringresult="";
//首先创建一个HttpWebRequest,申明传输方式POST
HttpWebRequestreq=(HttpWebRequest)WebRequest.Create(url);
req.Method="POST";
req.ContentType="application/x-www-form-urlencoded";
//添加POST参数
byte[]data=Encoding.UTF8.GetBytes(content);
req.ContentLength=data.Length;
using(StreamreqStream=req.GetRequestStream())
{
reqStream.Write(data,0,data.Length);
reqStream.Close();
}
//申明一个容器resp接收返回数据
HttpWebResponseresp=(HttpWebResponse)req.GetResponse();
Streamstream=resp.GetResponseStream();
//获取响应内容
using(StreamReaderreader=newStreamReader(stream,Encoding.UTF8))
{
result=reader.ReadToEnd();
}
returnresult;
}
然后,在Controller里面有个ToUrl用于接收数据
publicActionResultToUrl()
{
stringresult="";
stringjsonStr="",line;
try
{
StreamstreamResponse=Request.InputStream;
StreamReaderstreamRead=newStreamReader(streamResponse,Encoding.UTF8);
while((line=streamRead.ReadLine())!=null)
{
jsonStr+=line;
}
streamResponse.Close();
streamRead.Close();
result=jsonStr;
}
catch(Exceptionex)
{
result="msg-数据发布(In)异常:"+ex.Message;
}
Serviceservice=newService();
//调用AddCatagorys方法,把数据添加进去
service.AddCatagorys(result);
//再调用GetCatas方法,获取到分类列表
Listlist=service.GetCatagories();
//找到分类列表最后一个分类,也就是刚刚添加的分类
Catagorycatagory=list[list.Count-1];
//返回Json
//returnJson(catagory)
//返回一个ID,Content()里面是string类型,所以要把int转为string类型
returnContent(catagory.ID.ToString());
}
这里其实相当于两个人打电话,你在跟我打电话的时候,按理来说不会再跟其他人打电话呗。
所以这里returnContent(catagory.ID.ToString());表示将返回的ID再返还给控制台,也就是传输方,让传输方知道我们接收到你传输过来的数据,并且把它保存到数据库里面了。
注:此篇随笔只供参考使用,而且也有很多小瑕疵,最主要的不是代码,逻辑才是最重要的。