濮阳杆衣贸易有限公司

主頁 > 知識庫 > http調(diào)用webservice操作httprequest、httpresponse示例

http調(diào)用webservice操作httprequest、httpresponse示例

熱門標簽:昆明語音電銷機器人價格 電銷語音機器人型號參數(shù) 浦發(fā)電話機器人提醒還款 征途美甲店地圖標注 百度地圖怎樣做地圖標注 騰訊地圖標注手機 太原400電話上門辦理 400電話如何申請取消 柳州電銷機器人公司

REST WCF 使得我們調(diào)用Web服務(wù)時,可以通過HttpRequest的交互簡單完成。那么老版的WebService能否做到呢?WebService中通過HttpContext.Current.Rquest/Response,我們一樣也可以改造WebMethod。

客戶端:

復(fù)制代碼 代碼如下:

// 創(chuàng)建一個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); 

}

服務(wù)端:

復(fù)制代碼 代碼如下:

[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的行數(shù)返回客戶端  

        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將消息反序列化成參數(shù)。相對應(yīng)的客戶端代理類也是通過將消息反序列化成對象供客戶端使用。

您可能感興趣的文章:
  • JSP 中request與response的用法詳解
  • @ResponseBody 和 @RequestBody 注解的區(qū)別
  • AngularJS的ng Http Request與response格式轉(zhuǎn)換方法
  • C#中Request.Cookies 和 Response.Cookies 的區(qū)別分析
  • Asp.net response對象與request對象使用介紹
  • ASP.NET筆記之 Request 、Response 與Server的使用
  • JSP內(nèi)置對象:Request和Response的簡單介紹及使用
  • jquery ajax學習筆記2 使用XMLHttpRequest對象的responseXML
  • JSP中Servlet的Request與Response的用法與區(qū)別

標簽:張家界 天門 白山 陽泉 德陽 蘭州 江蘇 新疆

巨人網(wǎng)絡(luò)通訊聲明:本文標題《http調(diào)用webservice操作httprequest、httpresponse示例》,本文關(guān)鍵詞  http,調(diào)用,webservice,操作,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《http調(diào)用webservice操作httprequest、httpresponse示例》相關(guān)的同類信息!
  • 本頁收集關(guān)于http調(diào)用webservice操作httprequest、httpresponse示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    科技| 灵山县| 通海县| 中阳县| 封开县| 鲁甸县| 安仁县| 电白县| 芮城县| 左权县| 旬邑县| 乐陵市| 密云县| 浪卡子县| 孝感市| 承德市| 吉木乃县| 东乡县| 永登县| 保定市| 绥宁县| 屯昌县| 志丹县| 三河市| 唐海县| 宝丰县| 咸丰县| 天全县| 古浪县| 铁岭县| 东乌珠穆沁旗| 八宿县| 上饶市| 栾川县| 河间市| 广南县| 安乡县| 伊金霍洛旗| 泸水县| 洮南市| 常州市|