主页 > 知识库 > http调用webservice操作httprequest、httpresponse示例

http调用webservice操作httprequest、httpresponse示例

热门标签:昆明语音电销机器人价格 电销语音机器人型号参数 浦发电话机器人提醒还款 征途美甲店地图标注 百度地图怎样做地图标注 腾讯地图标注手机 太原400电话上门办理 400电话如何申请取消 柳州电销机器人公司

REST WCF 使得我们调用Web服务时,可以通过HttpRequest的交互简单完成。那么老版的WebService能否做到呢?WebService中通过HttpContext.Current.Rquest/Response,我们一样也可以改造WebMethod。

客户端:

复制代码 代码如下:

// 创建一个DataTable  

DataTable data = new DataTable("Project"); 

data.Columns.Add("Name"); 

data.Columns.Add("Birthday"); 

data.Rows.Add(new object[] { "Wendy", "1978/03/11" }); 

data.Rows.Add(new object[] { "Philip", "2000/11/05" }); 

data.Rows.Add(new object[] { "Felix", "1999/08/04" }); 

using (var ms = new MemoryStream()) 

    // 将DataTable用Xml格式写入流  

    data.WriteXml(ms, XmlWriteMode.WriteSchema); 

    var client = new WebClient(); 

    // 定义HttpRequest的Content-Type(xml,json等)  

    client.Headers.Add("Content-Type", "text/xml"); 

    var url = "http://localhost:2609/Service1.asmx/SendXml"; 

    // Send HttpRequest  

    var resp = client.UploadData(url, "POST", ms.ToArray()); 

    var strResp = System.Text.Encoding.UTF8.GetString(resp); 

    MessageBox.Show(strResp); 

}

服务端:

复制代码 代码如下:

[WebMethod] 

public void SendXml() 

    // 获得客户端RAW HttpRequest  

    var inputStream = HttpContext.Current.Request.InputStream; 

    // 定义Response返回的格式是:Json  

    var response = HttpContext.Current.Response; 

    response.ContentType = "text/json"; 

    //var strXml = "";  

    //using (var sr = new StreamReader(inputStream))  

    //    strXml = sr.ReadToEnd();  

    try 

    { 

        DataTable data = new DataTable(); 

        using (var xr = XmlReader.Create(inputStream)) 

            data.ReadXml(xr); 

        // 将读入Xml的DataTable的行数返回客户端  

        string count = "/"" + data.Rows.Count + "/""; 

        response.BinaryWrite(System.Text.Encoding.UTF8.GetBytes(count)); 

    } 

    catch (Exception ex) 

    { 

        response.BinaryWrite(System.Text.Encoding.UTF8.GetBytes(ex.Message)); 

    } 

}

客户端输出""3""

PS: 如果客户端的HttpRequest满足SOAP序列化格式,WebService会为WebMethod将消息反序列化成参数。相对应的客户端代理类也是通过将消息反序列化成对象供客户端使用。

您可能感兴趣的文章:
  • JSP 中request与response的用法详解
  • @ResponseBody 和 @RequestBody 注解的区别
  • AngularJS的ng Http Request与response格式转换方法
  • C#中Request.Cookies 和 Response.Cookies 的区别分析
  • Asp.net response对象与request对象使用介绍
  • ASP.NET笔记之 Request 、Response 与Server的使用
  • JSP内置对象:Request和Response的简单介绍及使用
  • jquery ajax学习笔记2 使用XMLHttpRequest对象的responseXML
  • JSP中Servlet的Request与Response的用法与区别

标签:张家界 天门 白山 阳泉 德阳 兰州 江苏 新疆

巨人网络通讯声明:本文标题《http调用webservice操作httprequest、httpresponse示例》,本文关键词  http,调用,webservice,操作,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《http调用webservice操作httprequest、httpresponse示例》相关的同类信息!
  • 本页收集关于http调用webservice操作httprequest、httpresponse示例的相关信息资讯供网民参考!
  • 推荐文章