.net post请求webservice
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的更多相关文章
- jquery+ajax跨域请求webservice
最近几天在学习webservice...在学习的时候便想到用ajax的方式去请求webservice.. 一直在测试..如果这个被请求的webservice和自己使用的是同一个端口号.则不用考虑那aj ...
- Node.js 使用 soap 模块请求 WebService 服务接口
项目开发中需要请求webservice服务,前端主要使用node.js 作为运行环境,因此可以使用soap进行请求. 使用SOAP请求webservice服务的流程如下: 1.进入项目目录,安装 so ...
- JQuery请求WebService返回数据的几种处理方式
打开自己的博客仔细浏览了一番,发现已经好久没有写博客了,由于最近一直比较忙碌懈怠了好多.默默反省三分钟.......言归正传,现在就对最近在学习webservice的过程中遇到的几种类型的问题中我的理 ...
- ajax请求webservice时抛出终止线程的异常
请求webservice中以下接口,会抛出异常 {"Message":"正在中止线程.","StackTrace":" 在 Sys ...
- webserive学习记录6-页面请求webservice
前面都是通过JAVA代码访问webservice服务,下面将介绍通过javascript,jquery访问webservice服务并介绍过过servlet解决跨域问题的方法. 服务端 编写服务代码,解 ...
- 通过HttpClient请求webService
通过HttpClient请求webService 由于服务端是用webService开发的,android要调用webService服务获取数据,这里采用的是通过HttpClient发送post请求, ...
- Kettle通过Http post请求webservice接口以及结果解析处理
kettle中有两种方式请求webservice服务,一个是Web服务查询,但是这个有缺陷,无法处理复杂的需求,遇到这种情况就需要用Http post来处理了. 网上也有很多关于Http post请求 ...
- ajax请求webservice的过程中遇到的问题总结
前台用ajax的post方法,无法请求到webservice中的方法的时候,需要在配置文件中添加 web.config文件中的 <system.web> 节点下加入:<webServ ...
- AJAX请求WebService
1.WebService代码 [WebMethod] [ScriptMethod(UseHttpGet = false)] public string GetObject() { User user ...
- .net请求Webservice简单实现天气预报功能
很久没有接触Webservice的知识,今天稍微复习了一下关于webservice,简单做了一个天气预报的功能,虽然界面丑的厉害,但功能算是实现了,以下是效果展示. 这东西没什么难点,只是天气预报的功 ...
随机推荐
- C#委托内部使用局部的变量的问题
一. 引子 先来看如下代码: ; Action action1 = () => { Console.WriteLine("打印一下i的值:" + i); }; i = ; A ...
- centos 7 搭建Samba
一.Samba简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,由客户端和服务端构成. SMB(Server Message Block的缩写,即服务器消息块)主要是作 ...
- Qt之圆角阴影边框
Qt的主窗体要做出类似WIN7那种圆角阴影边框,这一直是美工的需求. 这里是有一些门道的,尤其是,这里藏着一个很大的秘密. 这个秘密是一个QT的至少横跨3个版本,存在了2年多的BUG... https ...
- kali linux查看局域网下所有IP,并对指定IP实施局域网内攻击(断网,随时查看对方密码,上网痕迹等)
首先我们打开我们熟悉的kali linux操作系统,利用指令: ifconfig 来确认本机的ip地址 确认了本机的ip地址之后,利用一下的指令查看局域网下所有ip: fping -g 本机IP地址/ ...
- Cygwin添加右键菜单
修改注册表 统一的方式,添加一个右键命令 找到HKEY_CLASSES_ROOT\Directory\Background\shell 右键,新建项.名字随便起 再次右键,新建项.命名command ...
- 基于file上传文件的并发上传(多个文件一起上传到后台并把数据存储的同一条数据中,如 数据库字段videopath,imge。前台发送来的文件file1,file2。 videopath=file1,imge=file2)
前台代码: <div class="tab-content"> <dl> <dt>所属栏目</dt> <dd> < ...
- GCD的Queue-Specific
为了能够判断当前queue是否是之前创建的queue, 我们可以利用dispatch_queue_set_specific和dispatch_get_specific给queue关联一个context ...
- sourceTree3.2.6 跳过注册的方法(最新)
1.下载好之后会有这么一个界面要求你注册或登录.(不管它)将下面的一串串放进我的电脑的地址栏,打开sourcetree的文件夹 %LocalAppData%\Atlassian\SourceTree\ ...
- arm-linux-gcc-4.5.1安装方法
写在前面 之前写了一篇arm-linux-gcc-5.4.0的安装方法,但是后来发现5.4.0这个版本可能有些太新了,所以又找了这个4.5.1版本(低版本),由FriendlyARM(友善之臂)提供, ...
- Nginx 配置高可用的集群
1.什么是 nginx 高可用 (1)需要两台 nginx 服务器 (2)需要 keepalived (3)需要虚拟 ip 2.配置高可用的准备工作 (1)需要两台服务器 192.168.17.129 ...