http协议:

1、调用接口

例1:此例子传输参数为XML文本格式字符串; 将数据缓冲区上载到具有指定 URI 的资源。 

var url = "http://localhost:23265/Framework/VoiceRecord/VoiceRecord.ashx?";
var message = "<Conference><conId>1234567890</conId><conName>第一次会议</conName><conStartTime>2017-10-16 18:08:00</conStartTime><conPersonnelList>张三、李四、王五、赵六</conPersonnelList><conPosition>会议室</conPosition></Conference>";
var data = new WebClient().UploadData(url, Encoding.UTF8.GetBytes(message));
var result = Encoding.UTF8.GetString(data);

例2:可以使用 WebClient.UploadFile 上传文件; 将本地文件上载到具有指定 URI 的资源。 

var file = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "clientaccesspolicy.xml");
var data = new WebClient().UploadFile("http://localhost:2171/TestSaveFile.ashx?tg=" + HttpUtility.UrlEncode("测试.txt"), file);
var result = Encoding.UTF8.GetString(data);
Debug.Assert(result == "OK");

例3:DownloadData 。 以 Byte 数组形式通过指定的 URI 下载。 

WebClient client = new WebClient();
var result = client.DownloadData(string.Format("{0}{1}", xfVoiceUrl, XFConferenceId));
var backVal = Encoding.UTF8.GetString(result);

例4:

string url = "http://jiekou.56dxw.com/sms/HttpInterface.aspx?comid=123&username=test&userpwd=*****";
WebRequest wRequest = WebRequest.Create(url);
wRequest.Method = "GET";
wRequest.ContentType = "text/html;charset=UTF-8";
WebResponse wResponse = wRequest.GetResponse();
Stream stream = wResponse.GetResponseStream();
StreamReader reader = new StreamReader(stream, System.Text.Encoding.Default);
string str = reader.ReadToEnd(); //url返回的值
reader.Close();
wResponse.Close();

2、创建接口

在VS中创建一个一般处理程序(.ashx)文件,在ProcessRequest中写处理代码

例:此例子传输参数为XML文本格式字符串

 public void ProcessRequest(HttpContext context)
{
Logger.D("VoiceRecord|ProcessRequest:", "语音记录接收到消息");
context.Response.ContentType = "text/plain";
ZJNBLH.Model.VoiceRecord vrModel = new ZJNBLH.Model.VoiceRecord();
using (var sr = new System.IO.StreamReader(context.Request.InputStream))
{
var data = sr.ReadToEnd();//读取数据流
Logger.D("VoiceRecord|ProcessRequest:","接口获取到的数据:"+data);
int number = ;
if(!string.IsNullOrEmpty(data))
{
try
{
//解析xml格式字符串
XmlDocument doc = new XmlDocument();
doc.LoadXml(data);
var node = doc.SelectSingleNode("Conference");
if (node != null)
{
if (node.HasChildNodes)
{
vrModel.XFConferenceId = node.SelectNodes("conId").Item().InnerText;
vrModel.XFConferenceName = node.SelectNodes("conName").Item().InnerText;
vrModel.XFConStartTime = node.SelectNodes("conStartTime").Item().InnerText;
vrModel.XFConParticipant = node.SelectNodes("conPersonnelList").Item().InnerText;
vrModel.XFConRoom = node.SelectNodes("conPosition").Item().InnerText;
}
}
vrModel.ID = UF.GetNewID();
vrModel.AddTime = DateTime.Now;
vrModel.XFGetStatus = ;
vrModel.XFVoiceContent = "";
number = new VoiceRecordBLL().InsertVoiceRecord(vrModel);
}
catch (Exception ex)
{
Logger.E("语音记录xml解析异常:", ex.Message);
}
}
var returnMsg = "";
if (number > )
{
Logger.D("语音记录插入成功:", "会议ID:"+vrModel.XFConferenceId + "|会议名称:"+vrModel.XFConferenceName);
returnMsg = "<Results><ReturnCode>success</ReturnCode><msg>处理成功</msg></Results>";
}
else
{
Logger.D("语音记录插入失败:", "会议ID:" + vrModel.XFConferenceId + "|会议名称:" + vrModel.XFConferenceName);
returnMsg = "<Results><ReturnCode>error</ReturnCode><msg>处理失败</msg></Results>";
}
context.Response.Write(string.Format(returnMsg));
}
}

WebService协议:

1、调用接口

如果对方接口可以调通的情况下,直接添加引用即可调用(添加服务引用|添加Web引用)

添加WEB引用 = 添加一个WebService 的引用,可以调用别的网站的WebService ,
添加服务引用 = 添加一个WCF 或者 WCF数据的引用, 可以调用WCF服务 两个针对的服务是不一样的

2、创建接口

在VS中创建一个Web服务(.asmx)文件,在文件中写入接口方法进行调用

public class WebService1 : System.Web.Services.WebService
{ [WebMethod]
public string 接口1(string xx)
{
//内容
}
public string 接口2(string yy)
{
//内容
}
......
}

WebClient类提供向 URI 标识的资源发送数据和从 URI 标识的资源接收数据的公共方法。 其实就相当于创建一个请求客户端。可以获取网页和各种各样的信息,包括交互。

通过MSDN来看看WebClient类提供的功能。

一、属性

1、BaseAddress 获取或设置 WebClient 发出请求的基 URI。 
2、CachePolicy 对于此 WebClient 实例使用 WebRequest 对象获得的任何资源,获取或设置应用程序的缓存策略。 
3、CanRaiseEvents 获取一个指示组件是否可以引发事件的值。 (继承自 Component。) 
4、Container 获取 IContainer,它包含 Component。 (继承自 Component。) 
5、Credentials 获取或设置发送到主机并用于对请求进行身份验证的网络凭据。 
6、DesignMode 获取一个值,用以指示 Component 当前是否处于设计模式。 (继承自 Component。) 
7、Encoding 获取和设置用于上载和下载字符串的 Encoding。 
8、Events 获取附加到此 Component 的事件处理程序的列表。 (继承自 Component。) 
9、Headers 获取或设置与请求关联的标头名称/值对集合。 
10、IsBusy 了解是否存在进行中的 Web 请求。 
11、Proxy 获取或设置此 WebClient 对象使用的代理。 
12、QueryString 获取或设置与请求关联的查询名称/值对集合。 
13、ResponseHeaders 获取与响应关联的标头名称/值对集合。 
14、Site 获取或设置 Component 的 ISite。 (继承自 Component。) 
15、UseDefaultCredentials 获取或设置 Boolean 值,该值控制 DefaultCredentials 是否随请求一起发送。

二、方法

1、CancelAsync 取消一个挂起的异步操作。 
2、CreateObjRef 创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。 (继承自 MarshalByRefObject。) 
3、Dispose 已重载。 
4、DownloadData 已重载。 以 Byte 数组形式通过指定的 URI 下载。 
5、DownloadDataAsync 已重载。 以 Byte 数组形式下载指定的资源。这些方法不会阻止调用线程。 
6、DownloadFile 已重载。 将具有指定 URI 的资源下载到本地文件。 
7、DownloadFileAsync 已重载。 将指定的资源下载到本地文件。这些方法不会阻止调用线程。 
8、DownloadString 已重载。 以 String 形式下载请求的资源。可以以包含 URI 的 String 或 Uri 的形式指定要下载的资源。 
9、DownloadStringAsync 已重载。 下载以 String 或 Uri 形式指定的资源。这些方法不会阻止调用线程。 
10、Equals 确定指定的 Object 是否等于当前的 Object。 (继承自 Object。) 
11、Finalize 在通过垃圾回收将 Component 回收之前,释放非托管资源并执行其他清理操作。 (继承自 Component。) 
12、GetHashCode 用作特定类型的哈希函数。 (继承自 Object。) 
13、GetLifetimeService 检索控制此实例的生存期策略的当前生存期服务对象。 (继承自 MarshalByRefObject。) 
14、GetService 返回一个对象,该对象表示由 Component 或它的 Container 提供的服务。 (继承自 Component。) 
15、GetType 获取当前实例的 Type。 (继承自 Object。) 
16、GetWebRequest 为指定资源返回一个 WebRequest 对象。 
17、GetWebResponse 已重载。 返回对指定 WebRequest 的 WebResponse。 
18、InitializeLifetimeService 获取控制此实例的生存期策略的生存期服务对象。 (继承自 MarshalByRefObject。) 
19、MemberwiseClone 已重载。 
20、OnDownloadDataCompleted 引发 DownloadDataCompleted 事件。 
21、OnDownloadFileCompleted 引发 DownloadFileCompleted 事件。 
22、OnDownloadProgressChanged 引发 DownloadProgressChanged 事件。 
23、OnDownloadStringCompleted 引发 DownloadStringCompleted 事件。 
24、OnOpenReadCompleted 引发 OpenReadCompleted 事件。 
25、OnOpenWriteCompleted 引发 OpenWriteCompleted 事件。 
26、OnUploadDataCompleted 引发 UploadDataCompleted 事件。 
27、OnUploadFileCompleted 引发 UploadFileCompleted 事件。 
28、OnUploadProgressChanged 引发 UploadProgressChanged 事件。 
29、OnUploadStringCompleted 引发 UploadStringCompleted 事件。 
30、OnUploadValuesCompleted 引发 UploadValuesCompleted 事件。 
31、OpenRead 已重载。 为从具有指定 URI 的资源下载的数据打开一个可读的流。 
32、OpenReadAsync 已重载。 打开包含指定资源的可读流。这些方法不会阻止调用线程。 
33、OpenWrite 已重载。 打开一个流以将数据写入具有指定 URI 的资源。 
34、OpenWriteAsync 已重载。 打开一个流以将数据写入指定的资源。这些方法不会阻止调用线程。 
35、ToString 返回包含 Component 的名称的 String(如果有)。不应重写此方法。 (继承自 Component。) 
36、UploadData 已重载。 将数据缓冲区上载到具有指定 URI 的资源。 
37、UploadDataAsync 已重载。 将数据缓冲区上载到由 URI 标识的资源。此方法不会阻止调用线程。 
38、UploadFile 已重载。 将本地文件上载到具有指定 URI 的资源。 
39、UploadFileAsync 已重载。 将指定的本地文件上载到指定的资源。这些方法不会阻止调用线程。 
40、UploadString 已重载。 将指定的字符串上载到指定的资源。 
41、UploadStringAsync 已重载。 将指定的字符串上载到指定的资源。这些方法不会阻止调用线程。 
42、UploadValues 已重载。 将名称/值集合上载到具有指定 URI 的资源。 
43、UploadValuesAsync 已重载。 将指定的名称/值集合上载到指定的 URI 所标识的资源。这些方法不会阻止调用线程。

三、事件

1、Disposed 当通过调用 Dispose 方法释放组件时发生。 (继承自 Component。) 
2、DownloadDataCompleted 在异步数据下载操作完成时发生。 
3、DownloadFileCompleted 在异步文件下载操作完成时发生。 
4、DownloadProgressChanged 在异步下载操作成功转换部分或全部数据后发生。 
5、DownloadStringCompleted 在异步资源下载操作完成时发生。 
6、OpenReadCompleted 在以下异步操作完成时发生,该操作打开包含某个资源的流。 
7、OpenWriteCompleted 在打开流以将数据写入资源的异步操作完成时发生。 
8、UploadDataCompleted 在异步数据上载操作完成时发生。 
9、UploadFileCompleted 在异步文件上载操作完成时发生。 
10、UploadProgressChanged 在异步上载操作成功转换部分或全部数据后发生。 
11、UploadStringCompleted 在异步字符串上载操作完成时发生。 
12、UploadValuesCompleted 在名称/值集合的异步上载完成时发生。

httpService 和 WebService接口协议的更多相关文章

  1. 【JMeter4.0学习(三)】之SoapUI创建WebService接口模拟服务端以及JMeter对SOAP协议性能测试脚本开发

    目录: 创建WebService接口模拟服务端 下载SoapUI 新建MathUtil.wsdl文件 创建一个SOAP项目 接口模拟服务端配置以及启动 JMeter对SOAP协议性能测试脚本开发 [阐 ...

  2. lr使用soap协议,来对webservice接口进行测试

    实际项目中基于WSDL来测试WebService的情况并不多,WSDL并不是WebService测试的最佳选择. 最主要的原因还是因为WSDL文档过于复杂. 在案例(天气预报WebService服务) ...

  3. 从xfire谈WebService接口化编程

    前段时间有博友在看我的博文<WebService入门案例>后,发邮件问我关于WebService 接口在java中的开发,以及在实际生产环境中的应用.想想自己入职也有一段时间了,似乎也该总 ...

  4. php中创建和调用webservice接口示例

    php中创建和调用webservice接口示例   这篇文章主要介绍了php中创建和调用webservice接口示例,包括webservice基本知识.webservice服务端例子.webservi ...

  5. Webservice接口和Http接口

    WebService又是一种高级应用,与之前学习的Struts.Spring.Hibernate等框架不同.WebService是面向服务的架构(SOA),看起来像是比SSH框架要大.那么它到底是做什 ...

  6. loadrunner做webservice接口之简单调用

    今天听大神讲了webservice做接口,我按照他大概讲的意思自己模拟实战了下,可能还有很多不对,一般使用webservice做接口,会使用到soapui,但是用了loadrunner以后发现lr很快 ...

  7. Java 常调用的Webservice接口的方法

    WebService是基于Web的服务,WebService使用SOAP协议实现跨编程语言和跨操作系统平台,接收和响应外部系统的某种请求,从而实现远程调用.WebService采用HTTP协议传输数据 ...

  8. 如何高效的进行WebService接口性能测试

    版权声明:本文为原创文章,转载请先联系并标明出处 关于接口测试的理解,主要有两类,一类是模块与模块间的调用,此类接口测试应该归属于单元测试的范畴,主要测试模块与模块之间联动调用与返回.此类测试大多关注 ...

  9. Loadrunner Webservice接口性能测试脚本编写优化总结

    本文主要介绍使用Loadrunner Webservice接口性能测试脚本编写及优化总结. 1.Webservice协议脚本编写流程 下面介绍使用Loadrunner 11调用Webservice接口 ...

随机推荐

  1. python 递归函数操作方法

    .递归 是指函数/过程/子程序在运行过程序中直接或间接调用自身而产生的重入现象.在计算机编程里,递归指的是一个过程:函数不断引用自身,直到引用的对象已知.使用递归解决问题,思路清晰,代码少.但是在主流 ...

  2. JS之计时器

    JavaScript 计时事件 通过使用 JavaScript,我们有能力作到在一个设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行.我们称之为计时事件. 在 JavaScritp 中使用计 ...

  3. caffe 中solver.prototxt

    关于cifar-10和mnist的weight_decay和momentum也是相当的重要:就是出现一次把cifar-10的两个值直接用在mnist上,发现错误很大.

  4. oracle死锁测试

    测试一个死锁,看看oracle会报什么错误,以及oracle如何处理 1.创建测试表,测试数据 2.第一轮update,delete 两个会话,不同的行 3.第二轮,delete,update两个会话 ...

  5. Python使用PIL模块生成随机验证码

    PIL模块的安装 pip3 install pillow 生成随机验证码图片 import random from PIL import Image, ImageDraw, ImageFont fro ...

  6. 【集成学习】sklearn中xgboost模块的XGBClassifier函数

    # 常规参数 booster gbtree 树模型做为基分类器(默认) gbliner 线性模型做为基分类器 silent silent=0时,不输出中间过程(默认) silent=1时,输出中间过程 ...

  7. vmware如何安装ubuntu

    一.安装vamware 二.新建虚拟机 三.安装虚拟机的镜像文件 三.正式安装ubuntu 可能会出现的问题有: 下面为百度上的方法: 敲重点: 倘若按照网上的方法:关机重启按F2无法进入BIOS.则 ...

  8. HPU第三次积分赛-D:Longest Increasing Subsequence(DP)

    Longest Increasing Subsequence 描述 给出一组长度为n的序列,a1​,a2​,a3​,a4​...an​, 求出这个序列长度为k的严格递增子序列的个数 输入 第一行输入T ...

  9. HDACM2021(发工资)

    发工资咯:) Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  10. ideal通过svn上传项目和激活方式

    激活方式: http://www.ideadev.club/topic/detail/102?anchor=1526259147353#1526259147353