请求WebService接口可以直接引用服务,但是不能直接引用的怎么办呢?我们还可以通过Post请求,那么通过Post怎么样请求呢?
下面代码用于演示,比较简单便于理解:
private stringReadFile(object value)
{
try
{
string Url = "http://143.35.232.74:8010/FileWebService.asmx";
string method = "PostGetFileJson";//方法名
string postData = "fildID=" + LastID.ToString();//请求参数
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] dataArray = Encoding.UTF8.GetBytes(postData);//设置编码规格
HttpWebRequest request2 = (HttpWebRequest)WebRequest.Create(Url + "/" + method);//创建Web请求
request2.Method = "Post";
request2.ContentType = "application/x-www-form-urlencoded";
request2.ContentLength = dataArray.Length;
Stream Writer = request2.GetRequestStream();//获取用于写入请求数据的Stream对象
Writer.Write(dataArray, 0, dataArray.Length);//把参数数据写入请求数据流
Writer.Close();
//传过来为XML用以下方法解析
HttpWebResponse response2 = (HttpWebResponse)request2.GetResponse();//获得相应
Stream stream2 = response2.GetResponseStream();//获取响应流
XmlTextReader Reader2 = new XmlTextReader(stream2);
Reader2.MoveToContent();
string result2 = Reader2.ReadInnerXml();
stream2.Close();
//传过来为json格式用以下方法解析
HttpWebResponse response2 = (HttpWebResponse)request2.GetResponse();//获得相应
StreamReader stream2 = new StreamReader(response2.GetResponseStream(), Encoding.UTF8);//获取响应流
string result2 = stream2.ReadToEnd();
stream2.Close();
}
catch(Exception e)
{
Logs.WriteTxTLogs("ReadFile()错误信息:" + e);
}
}
上面代码都有注释,其实只有三部分创建请求、请求写入流、获得相应。这种方式读取的结果是一个返回的字符串。