使用HTTP-GET方式访问
![](/Images/OutliningIndicators/ContractedBlock.gif)
HTTP-GET方式访问#region HTTP-GET方式访问
private void button1_Click(Object sender,System.EventArgs e)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
{
System.Net.HttpWebRequest Req;
string strGet="http://localhost/HelloWord?name=";
strGet=strGet+textBox1.Text;
Rep=(System.net.HttpWebRequest)WebRequest.Create(strGet);
System.Net.HttpWebResponse response;
response=(System.net.HttpWebResponse).Req.GetResponse();
System.IO.Stream s;
s=response.GetResponseStream();
XmlTextReader Reader=new XmlTextReader(s);
Reader.MoveToContent();
label1.Text=Reader.ReaderInnerXml();
Reader.Close();
}
#endregion
使用HTTP-POST方式访问
![](/Images/OutliningIndicators/ContractedBlock.gif)
HTTP-POST方式访问#region HTTP-POST方式访问
private void button1_Click(Object sender,System.EventArgs e)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
{
string url;
url="http://localhost/HelloWord";
HttpWebRequest Req;
Req=(HttpWebRequest)WebRequest.Create(url);
![](/Images/OutliningIndicators/InBlock.gif)
//POST方式请求
Rep.Method="POST";
![](/Images/OutliningIndicators/InBlock.gif)
//内容类型
Rep.ContentType="application/x-www-form-urlencoded";
![](/Images/OutliningIndicators/InBlock.gif)
//参数经过URL编码
string paraUrlCoded=System.Web.HttpUtility.UrlEncode("name");
paraUrlCoded=paraUrlCoded+"="+System.Web.HttpUtility.UrlEncode(textBox1.Text);
byte[] payload;
![](/Images/OutliningIndicators/InBlock.gif)
//将URL编码后的字符串转化为字节
payload=System.TextEncoding.UTF8.GetBytes(paraUrlCoded);
![](/Images/OutliningIndicators/InBlock.gif)
//设置请求的ContentLength
Req.ContentLength=payload.Length;
![](/Images/OutliningIndicators/InBlock.gif)
//获得请求流
Stream writer=Req.GetRequestStream();
![](/Images/OutliningIndicators/InBlock.gif)
//将请求参数写入流
writer.Write(payload,0,payload.Length);
![](/Images/OutliningIndicators/InBlock.gif)
//关闭请求流
writer.Close();
![](/Images/OutliningIndicators/InBlock.gif)
//获得响应流
HttpWebResponse response=(HttpWebResponse)Req.GetResponse();
System.IO.Stream s;
s=response.GetResponseStream();
XmlTextReader Reader=new XmlTextReader(s);
Reader.MoveToContent();
label1.Text=Reader.ReaderInnerXml();
Reader.Close();
}
#endregion
使用SOAP方式访问
首先客户代理用XmlSerializer对象进行参数序列化为XML.服务器端相应的
XmlSerializer对象反序列化,从而从XML中获取调用参数.
如下:Person类
![](/Images/OutliningIndicators/ContractedBlock.gif)
Person类#region Person类
public class Person
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
{
private String name;
private int age;
public String Name;
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
get
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return name;
}
set
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
name=value;
}
}
![](/Images/OutliningIndicators/InBlock.gif)
public int Age
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
get
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return age;
}
set
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
age=value;
}
}
![](/Images/OutliningIndicators/InBlock.gif)
public void Show()
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
Console.WriteLine("Name"=
{0},Age=
{1},Name,Age);
![](/Images/OutliningIndicators/InBlock.gif)
}
}
![](/Images/OutliningIndicators/InBlock.gif)
#endregion
![](/Images/OutliningIndicators/ContractedBlock.gif)
SOAP方式访问#region SOAP方式访问
static void Main(String[] args)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
{
//实例化XML序列器
XmlSerializer serializer=net XmlSerializer(typeof(Person));
//生成序列化对象
Person p=new Person();
p.Age=22;
p.Name="Jack.Xiao";
//生成内存流
MemoryStream s=new MemoryStream();
//书写器
StreamWriter writer=new StreamWriter(s,Encoding.UTF8);
serializer.Serialize(writer,p);
//定位到流的头
s.Seek(0,SeekOrigin.Begin);
StreamReader reader=new StreamReader(s,Encoding.UTF8);
![](/Images/OutliningIndicators/InBlock.gif)
Person p2=(Person)serializer.Deserialize(reader);
p2.Show();
Console.WriteLine("==========XML内容如下===============");
//显示XML内容
s.Seek(0,SeekOrigin.Begin);
String xmls=reader.ReadLine()
while(xmls!=null)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
Console.WriteLine(xmls);
xmls=reader.ReadLine();
}
//关闭流
reader.Close();
}
#endregion