All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
MySQL创始人支招Oracle,建议转售MySQL_mssql学习_编程技术
跟我学SQL:(一)数据查询_mssql学习_编程技术
PHP入门需要掌握的几种功能代码_[PHP教程]
C#中水晶报表简介
PHP技巧:得到一个字符串的最后一个字符_[PHP教程]
ASP.NET技巧:ASP.Net,2.0,发送邮件的代码_[Asp.Net教程]
浅议ASP.NET中Session的状态保持方式_[Asp.Net教程]
asp.net收集机器硬件信息的相关代码片断(cpu频率、磁盘可用空间、内存容量……)_[Asp.Net教程]
ASP.NET实现数字和字符相混合的验证码_[Asp.Net教程]
在ASP.NET中实现多文件上传和insertAdjacentHTML_[Asp.Net教程]
Reading number is top 10 pictures
青春清纯美女大集合1
西方气质的东方美女2
Sora aoi on twitter3
世界五大海盗
移民小国也实惠1
再发一张清纯美眉的照片
漂亮脸蛋魔鬼身材2
2012 national geographic daily picture8
Absolutely shocked. National geographic 50 animal photographys8
我国房地产真相
Download software ranking
Boxer's Top ten classic battle4
Prostitutes diary
Jinling thirteen stock
Popkart Cracked versions Mobile phone games
Boxer vs Yellow1
Unix video tutorial17
Ashlynn Video1
Adobe Flash Player(IE) 10.0.32.18 浏览器专用的FLASH插件
Take off clothes to survival
Eclipse 4.2.2 For Win64
delv published in(发表于) 2014/1/24 9:09:08 Edit(编辑)
C#提交数据到服务器并返回的处理_[Asp.Net教程]

C#提交数据到服务器并返回的处理_[Asp.Net教程]

C#提交数据到服务器并返回的处理_[Asp.Net教程]

1:利用System.Net.WebRequest的Create方法创建WebRequest对象:



System.Net.WebRequest ObjWebRequest =System.Net.WebRequest.Create(urlP);


异常类型:
NotSupportedException :requestUri 中指定的请求方案未注册。
ArgumentNullException :requestUri 为空引用(Visual Basic 中为 Nothing)。
SecurityException 调用方没有连接到请求的 URI 或请求重定向到的 URI 上的权限。

2:对请求进行预先身份验证,如果无明确的要求,此项可以空.



ObjWebRequest.Credentials = CredentialCache.DefaultCredentials;



如果需要按照特别的验证协议,需要强制转换成HttpWebRequest类型:


((HttpWebRequest)ObjWebRequest).UserAgent = "5DO8";



3:指明协议的类型:


ObjWebRequest.Method = "POST";



可以是POST方式和Get方式.

4:发送传输的数据长度(如果无显示传送,亦可发送),如果设置了此项,发送的数据必须恰好满足此值.



ObjWebRequest.ContentLength = Stringdata.ToCharArray().Length;



5:设置传入请求的 MIME 内容类型:



ObjWebRequest.ContentType="application/x-www-form-urlencoded";//Post
ObjWebRequest.ContentType="text/xml";//SOAP



6:使用GetRequestStream()方法获取发送的流的句柄:



System.IO.Stream dataStream = ObjWebRequest.GetRequestStream();



7:发送数据:


dataStream.Write (byteArray, 0, byteArray.Length);



注:byteArray是一个Byte数组,它的获取可以是:


byte[] byteArray = UTF8Encoding.GetBytes(dataP);



8:关闭Request流.



dataStream.Close ();


这是必须的,知道Close,服务器不会响应输出,还可以选择调用System.IO.Stream.Close()关闭流.

9:利用GetResponse()获取Response对象.


WebResponse Objresponse = ObjWebRequest.GetResponse();




9*:你可以获取返回给客户端的 HTTP 输出状态的字符串,默认是公共状态消息"OK"



//Console.WriteLine (((HttpWebResponse)Objresponse).StatusDescription);
if ( ((HttpWebResponse)Objresponse).StatusDescription != "OK"){
//..结束这一切
}




10:获取响应流的句柄:


Stream data = Objresponse.GetResponseStream



11:保存数据或者直接读出,例如直接输出到浏览器.



dataStream = ObjResponse.GetResponseStream ();

StreamReader r = new StreamReader(dataStream);
Response.Write(HttpUtility.HtmlEncode(r.ReadToEnd()));


或者使用StreamWriter对象保存:


Stream outStream =System.IO.File.Create( "Temp.data" );
byte []buffer = new byte[1024];
int l;
do{
l = dataStream.Read(buffer,0,buffer.Length);
if(l>0) outStream.Write(buffer,0,l);
} while(l>0);

outStream.Close();



此方式可以保存二进制数据.

12:关闭流.


Objresponse.Close();




例如发送Soap文件时候,可以创建XmlDocument对象,直接使用Save()即可:



XmlDocument doc = new XmlDocument();
doc.Load( System.Web.HttpContext.Current.Server.MapPath(@"~")+@"\" + xmlfile);
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(@"http://s:81/5do8/webs.asmx");

req.ContentType = "text/xml;charset=\"utf-8\"";
req.Accept = "text/xml";
req.Method = "POST";

Stream stm = req.GetRequestStream();
doc.Save(stm);
stm.Close();
WebResponse resp = req.GetResponse();
stm = resp.GetResponseStream();
StreamReader r = new StreamReader(stm);
Response.Write(HttpUtility.HtmlEncode(r.ReadToEnd()));



-1:利用ASP发送XMLHTTP对象:



Set xmlhttp = server.CreateObject("Msxml2.XMLHTTP")
xmlhttp.Open "POST",url,false
xmlhttp.setRequestHeader "Content-Type", "text/xml;charset=utf-8"
xmlhttp.setRequestHeader "HOST","s"
xmlhttp.setRequestHeader "Content-Length",LEN(SoapRequest)
xmlhttp.setRequestHeader "SOAPAction", "http://s"
xmlhttp.Send(SoapRequest)
Response.Write xmlhttp.Status&” ”
Response.Write xmlhttp.StatusText
Set xmlhttp = Nothing



获取的时候:




If xmlhttp.Status = 200 Then
Set xmlDOC =server.CreateObject("MSXML.DOMDocument")
xmlDOC.load(xmlhttp.responseXML)
xmlStr = xmlDOC.xml
Set xmlDOC=nothing
xmlStr = Replace(xmlStr,"<","<")
xmlStr = Replace(xmlStr,">",">")
Response.write xmlStr
Else
Response.Write xmlhttp.Status&" "
Response.Write xmlhttp.StatusText
End if
请求正确则给出完整响应,请求不正确(如账号,密码不对)响应的内容就会信息不完整.
取出响应里的数据,如下:
If xmlhttp.Status = 200 Then
Set xmlDOC = server.CreateObject("MSXML.DOMDocument")
xmlDOC.load(xmlhttp.responseXML)
Response.Write xmlDOC.documentElement.selectNodes("//LoginByAccountResult")(0).text
Set xmlDOC = nothing
Else
Response.Write xmlhttp.Status&" "
Response.Write xmlhttp.StatusText
End if
显示某节点各个属性和数据的FUNCTION:
Function showallnode(rootname,myxmlDOC)
if rootname<>"" then
set nodeobj=myxmlDOC.documentElement.selectSingleNode("//"&rootname&"")'当前结点对像
nodeAttributelen=myxmlDOC.documentElement.selectSingleNode("//"&rootname&"").attributes.length'当前结点属性数
returnstring=returnstring&"
节点名称:"&rootname
if nodeobj.text<>"" then
returnstring=returnstring&"
节点的文本:("&nodeobj.text&")"
end if
returnstring=returnstring&"
{
"
if nodeAttributelen<>0 then
returnstring=returnstring&"
属性数有 "&nodeAttributelen&" 个,分别是:"
end if
for i=0 to nodeAttributelen-1
returnstring=returnstring&"
  • "&nodeobj.attributes(i).Name&": "&nodeobj.getAttribute(nodeobj.attributes(i).Name)&"
  • "
    next
    if nodeobj.childNodes.Length<>0 then
    if nodeobj.hasChildNodes() and lcase(nodeobj.childNodes.item(0).nodeName)<>"#text" then'是否有子节点
    set childnodeobj=nodeobj.childNodes
    childnodelen=nodeobj.childNodes.Length
    returnstring=returnstring&"

    有 "&childnodelen&" 个子节点;
    分别是: "
    for i=0 to childnodelen-1
    returnstring=returnstring&"
  • "&childnodeobj.item(i).nodeName&"
  • "
    next
    end if
    end if
    returnstring=returnstring&"
    }
    "
    response.write returnstring
    set nodeobj=nothing
    end if
    End Function
    可以这样用:
    If xmlhttp.Status = 200 Then
    Set xmlDOC = server.CreateObject("MSXML.DOMDocument")
    xmlDOC.load(xmlhttp.responseXML)
    showallnode "LoginByAccountResponse",xmlDOC’调用SHOWALLNODE
    Set xmlDOC = nothing
    Else
    Response.Write xmlhttp.Status&" "
    Response.Write xmlhttp.StatusText
    End if

    POST:

    url = "http://s/"
    SoapRequest="username="&username&"&password="&password
    Set xmlhttp = server.CreateObject("Msxml2.XMLHTTP")
    xmlhttp.Open "POST",url,false
    xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"’注意
    xmlhttp.setRequestHeader "HOST","
    "
    xmlhttp.setRequestHeader "Content-Length",LEN(SoapRequest)
    xmlhttp.Send(SoapRequest)

    Response.Write xmlhttp.Status&” ”
    Response.Write xmlhttp.StatusText
    Set xmlhttp = Nothing

    'POST
    If xmlhttp.Status = 200 Then
    Set xmlDOC = server.CreateObject("MSXML.DOMDocument")
    xmlDOC.load(xmlhttp.responseXML)
    showallnode "string",xmlDOC'调用SHOWALLNODE
    Set xmlDOC = nothing
    Else
    Response.Write xmlhttp.Status&" "
    Response.Write xmlhttp.StatusText
    End if






    添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


    Disclaimer Privacy Policy About us Site Map

    If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
    Copyright ©2011-
    uuhomepage.com, Inc. All rights reserved.