class Program
{
static void Main(string[] args)
{
var m = "m=" + JsonConvert.SerializeObject(new { age = , name = "jxp" });
var a = HttpHelper.PostRequest("http://localhost:7132/Jxp.asmx/HelloWorld", DataTypeEnum.Form, m);
var xmldoc = new XmlDocument();
xmldoc.LoadXml(a);
var nsMgr = new XmlNamespaceManager(xmldoc.NameTable); nsMgr.AddNamespace("ns", "http://tempuri.org/");
XmlNode errorNode = xmldoc.SelectSingleNode("/ns:string", nsMgr);
var b = JsonConvert.DeserializeObject(errorNode.InnerText);
Console.WriteLine(b);
Console.ReadKey();
}
}

控制台调用

[WebMethod]
public string HelloWorld(string m)
{
return m;
}

webservice服务

public class HttpHelper
{
/// <summary>
/// Post带参请求
/// </summary>
/// <param name="url"></param>
/// <param name="contentType">指定参数类型</param>
/// <param name="strData"></param>
/// <param name="dicHeader"></param>
/// <returns></returns>
public static string PostRequest(string url, DataTypeEnum contentType, string strData, Dictionary<string, string> dicHeader = null)
{
string result;
var webRequest = WebRequest.Create(url);
if (dicHeader != null)
foreach (var m in dicHeader)
{
webRequest.Headers.Add(m.Key, m.Value);
}
webRequest.Method = MethodTypeEnum.Post.ToString();
webRequest.Proxy = null;
if (contentType == DataTypeEnum.Form)
{
webRequest.ContentType = "application/x-www-form-urlencoded";
}
else
{
webRequest.ContentType = "application/" + contentType;
} byte[] reqBodyBytes = System.Text.Encoding.UTF8.GetBytes(strData);
Stream reqStream = webRequest.GetRequestStream();//加入需要发送的参数
reqStream.Write(reqBodyBytes, , reqBodyBytes.Length);
reqStream.Close();
using (var reader = new StreamReader(webRequest.GetResponse().GetResponseStream()))
{
result = reader.ReadToEnd();
}
return result;
} /// <summary>
/// Get不带参请求
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public static string GetRequest(string url)
{
string result;
WebRequest webRequest = WebRequest.Create(url);
webRequest.Method = MethodTypeEnum.Get.ToString();
webRequest.Proxy = null;
using (var reader = new StreamReader(webRequest.GetResponse().GetResponseStream()))
{
result = reader.ReadToEnd();
}
return result;
}
} /// <summary>
/// 带参数据类型
/// </summary>
public enum DataTypeEnum
{
Json,
Xml,
Form
} /// <summary>
/// 带参数据类型
/// </summary>
public enum MethodTypeEnum
{
Get,
Post
}

请求帮助类

返回json

.net post请求webservice的更多相关文章

  1. jquery+ajax跨域请求webservice

    最近几天在学习webservice...在学习的时候便想到用ajax的方式去请求webservice.. 一直在测试..如果这个被请求的webservice和自己使用的是同一个端口号.则不用考虑那aj ...

  2. Node.js 使用 soap 模块请求 WebService 服务接口

    项目开发中需要请求webservice服务,前端主要使用node.js 作为运行环境,因此可以使用soap进行请求. 使用SOAP请求webservice服务的流程如下: 1.进入项目目录,安装 so ...

  3. JQuery请求WebService返回数据的几种处理方式

    打开自己的博客仔细浏览了一番,发现已经好久没有写博客了,由于最近一直比较忙碌懈怠了好多.默默反省三分钟.......言归正传,现在就对最近在学习webservice的过程中遇到的几种类型的问题中我的理 ...

  4. ajax请求webservice时抛出终止线程的异常

    请求webservice中以下接口,会抛出异常 {"Message":"正在中止线程.","StackTrace":" 在 Sys ...

  5. webserive学习记录6-页面请求webservice

    前面都是通过JAVA代码访问webservice服务,下面将介绍通过javascript,jquery访问webservice服务并介绍过过servlet解决跨域问题的方法. 服务端 编写服务代码,解 ...

  6. 通过HttpClient请求webService

    通过HttpClient请求webService 由于服务端是用webService开发的,android要调用webService服务获取数据,这里采用的是通过HttpClient发送post请求, ...

  7. Kettle通过Http post请求webservice接口以及结果解析处理

    kettle中有两种方式请求webservice服务,一个是Web服务查询,但是这个有缺陷,无法处理复杂的需求,遇到这种情况就需要用Http post来处理了. 网上也有很多关于Http post请求 ...

  8. ajax请求webservice的过程中遇到的问题总结

    前台用ajax的post方法,无法请求到webservice中的方法的时候,需要在配置文件中添加 web.config文件中的 <system.web> 节点下加入:<webServ ...

  9. AJAX请求WebService

    1.WebService代码 [WebMethod] [ScriptMethod(UseHttpGet = false)] public string GetObject() { User user ...

  10. .net请求Webservice简单实现天气预报功能

    很久没有接触Webservice的知识,今天稍微复习了一下关于webservice,简单做了一个天气预报的功能,虽然界面丑的厉害,但功能算是实现了,以下是效果展示. 这东西没什么难点,只是天气预报的功 ...

随机推荐

  1. Python爬取知乎上搞笑视频,一顿爆笑送给大家

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:Huangwei AI 来源:Python与机器学习之路 PS:如有需 ...

  2. 如何访问到静态的文件,如jpg,js,css.

    如果你的DispatcherServlet拦截"*.do"这样的有后缀的URL,就不存在访问不到静态资源的问题. 如果你的DispatcherServlet拦截"/&qu ...

  3. 利用InsertStatusValueRequest消息为新增的statuscode设定指定值(Value)

    我是微软Dynamcis 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  4. Dynamics 365 Customer Engagement中使用JavaScript和C#调用操作Action示例

    微软动态CRM专家罗勇 ,回复334或者20190509可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! Action (操作)是流程的一种,可以在工作流中调用,可以使用 ...

  5. 安卓开发笔记(三十二):banner轮播图的实现

    一.activity.xml 我这里主要爬取的爱奇艺首页的图片进行轮播,应用了两个github上的开源库,一个banner的库,一个加载网络图片的库,用开源库能够极大地节省我们编写代码的时间. < ...

  6. 工具类ToastUtil 避免在子线程中使用抛异常 "Can't create handler inside thread that has not called Looper.prepare()"

    package com.example.kbr.utils; import android.view.Gravity; import android.widget.Toast; import io.r ...

  7. HIVE SQL产生的文件数量及参数调优

    产生背景:sqoop抽取oracle数据到hive表时,只能写入到固定分区(--hive-partition-key #hive分区字段 --hive-partition-value #hive分区值 ...

  8. mysql设置用户密码规则

    一.查看密码规则 SHOW VARIABLES LIKE 'validate_password%'; 二.规则显示介绍 | Variable_name | Value | +------------- ...

  9. 五分钟搞懂什么是B-树(全程图解)【转】

    前戏 我们大家都知道动态查找树能够提高查找效率,比如:二叉查找树,平衡二叉查找树,红黑树.他们查找效率的时间复杂度O(log2n),跟树的深度有关系,那么怎么样才能提高效率呢?当然最快捷的方式就是减少 ...

  10. docker卷管理(四)

    什么是数据卷 overlay2存储卷 docker镜像是由多个只读层叠加而成,启动容器时,docker会加载只读镜像层,并在镜像栈顶部添加一个可写层 如果运行中的容器修改了现有的一个已存在文件,那该文 ...