星空网 > 软件开发 > ASP.net

C#发送HttpPost请求调用WebService

一、Webservice调用的三种方式:

Webservice调用1:浏览器中输入以下URL,然后再返回的页面输入参数,提交实现调用
http://localhost/WebService/MyService.asmx?op=MyAction

Webservice调用2:html中通过表单提交来实现调用

<form id="form1" runat="server" action="http://10.15.223.56/WebService/MyService.asmx/MyAction">  <input type="text" name="str value="<a ObjID=\"9\"></a>" /> 
  <input type="text" name="strData" value="ContactSign|990011|我的数据" />
  <input type="submit" value="Send" />
</form>

Webservice调用3:在C#中发送HttpPost请求来调用WebService中的MyAction方法,代码如下:

C#发送HttpPost请求调用WebService
    void UpdateContactSign()    {      string ServerPage ="http://localhost/WebService/MyService.asmx";      try      {        //ServerPage += "?op=TangramAction";        ServerPage += "/MyAction";//MyAction是WebService中的方法         string str"<a ObjID=\"9\"></a>",;//第一个参数         string strData="ContactSign|990011|我的数据";//第二个参数         string res = HttpConnectToServer(ServerPage, str//MessageBox.Show(res);      }      catch (Exception ex)      {              }    }    //发送消息到服务器    public string HttpConnectToServer(string ServerPage,string strstring strData)    {      string postData = "str" + str"&strData="+strData;      byte[] dataArray = Encoding.Default.GetBytes(postData);      //创建请求      HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(ServerPage);      request.Method = "POST";      request.ContentLength = dataArray.Length;      request.ContentType = "application/x-www-form-urlencoded";      //创建输入流      Stream dataStream = null;      try      {        dataStream = request.GetRequestStream();      }      catch (Exception)      {        return null;//连接服务器失败      }      //发送请求      dataStream.Write(dataArray, 0, dataArray.Length);      dataStream.Close();      //读取返回消息      string res = string.Empty;      try      {        HttpWebResponse response = (HttpWebResponse)request.GetResponse();        StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);        res = reader.ReadToEnd();        reader.Close();      }      catch (Exception ex)      {        return null;//连接服务器失败      }      return res;    } 
C#发送HttpPost请求调用WebService

 

二、C#中发送HttpPost请求参数传值的中文乱码处理:

1.客户端参数Base64编码处理  在给postData赋值之前,先对 strData进行Base64编码处理,注意加号(’+‘)的替换处理,否则由于加号经过Url传递后变成空格而得不到合法的Base64字符串,修改代码如下:

C#发送HttpPost请求调用WebService
     //发送消息到服务器    public string HttpConnectToServer(string ServerPage,string strstring strData)    {      //Base64编码 处理中文乱码      byte[] buffer = Encoding.Default.GetBytes(strData);      string Base64StrData = Convert.ToBase64String(buffer).Replace("+", "%2B");//处理加号      string postData = "str" + str"&strData="+Base64StrData;      byte[] dataArray = Encoding.Default.GetBytes(postData);      //创建请求
        .......
        .......       return res;
    }
C#发送HttpPost请求调用WebService

2.服务端获取到数据后,先解码再使用。解码的代码如下:

C#发送HttpPost请求调用WebService
    public string MyAction(string strstring strData)    {      //Base64解码      byte[] buffer = Convert.FromBase64String(strData);      string Data = Encoding.Default.GetString(buffer);           //方法实现部分代码中凡用到strData的地方 改为使用解码后的Data       ........      ........     }    
C#发送HttpPost请求调用WebService

 





原标题:C#发送HttpPost请求调用WebService

关键词:C#

C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

沃尔玛销售额:https://www.goluckyvip.com/tag/8118.html
tiktok 下载:https://www.goluckyvip.com/tag/81180.html
tiktok海外版下载:https://www.goluckyvip.com/tag/81181.html
tiktok创始人是谁:https://www.goluckyvip.com/tag/81182.html
tiktok色板下载:https://www.goluckyvip.com/tag/81183.html
tiktok成年人:https://www.goluckyvip.com/tag/81184.html
皇帝的皇宫=:https://www.vstour.cn/a/363188.html
海南岛琼海市旅游景点 琼海市的旅游景点:https://www.vstour.cn/a/363189.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流