C# 后台请求web服务方法

/// <summary>

/// 传输方法

/// </summary>

/// <param name="url">接口地址</param>

/// <param name="ms">序列化后的数据</param>

/// <returns></returns>

public static JObject ResponseBind(string url, string buffer)

{

SecurityUtils su = new SecurityUtils();//给值

IDictionary<string, string> parameters = new Dictionary<string, string>();

parameters.Add("request", buffer);

string strReturn = su.ReturnActionFromXml(url, parameters);

JObject jo = (JObject)JsonConvert.DeserializeObject(strReturn);

string responsestr = jo["response"] != null ? jo["response"].ToString().Trim() : "";//执行结果

JObject jo2 = (JObject)JsonConvert.DeserializeObject(responsestr);

return jo2;

}

public string ReturnActionFromXml(string url, IDictionary<string, string> parameters)

{

string xml;

HttpWebResponse response = HttpWebResponseUtility.CreatePostHttpResponse(url, parameters, null, null, Encoding.UTF8, null);

using (StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8))

{

xml = sr.ReadToEnd();

}

return xml;

}

using System;

using System.Collections.Generic;

using System.IO;

using System.Linq;

using System.Net;

using System.Net.Security;

using System.Security.Cryptography.X509Certificates;

using System.Text;

using System.Web;

namespace Dscf.Client.InformationAuditWeb.Handler

{

public class HttpWebResponseUtility

{

private static readonly string DefaultUserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";

public static HttpWebResponse CreateGetHttpResponse(string url, int? timeout, string userAgent, CookieCollection cookies)

{

if (string.IsNullOrEmpty(url))

{

throw new ArgumentNullException("url");

}

HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;

request.Method = "GET";

request.UserAgent = DefaultUserAgent;

if (!string.IsNullOrEmpty(userAgent))

{

request.UserAgent = userAgent;

} if (timeout.HasValue)

{

request.Timeout = timeout.Value;

} if (cookies != null)

{

request.CookieContainer = new CookieContainer();

request.CookieContainer.Add(cookies);

}

return request.GetResponse() as HttpWebResponse;

}

public static HttpWebResponse CreatePostHttpResponse(string url, IDictionary<string, string> parameters, int? timeout, string userAgent, Encoding requestEncoding, CookieCollection cookies)

{

if (string.IsNullOrEmpty(url))

{ throw new ArgumentNullException("url"); }

if (requestEncoding == null)

{

throw new ArgumentNullException("requestEncoding");

}

HttpWebRequest request = null;             //如果是发送HTTPS请求

if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))

{

ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);

request = WebRequest.Create(url) as HttpWebRequest;

request.ProtocolVersion = HttpVersion.Version10;

}

else

{

request = WebRequest.Create(url) as HttpWebRequest;

}

request.Method = "POST";

request.ContentType = "application/x-www-form-urlencoded";

if (!string.IsNullOrEmpty(userAgent))

{

request.UserAgent = userAgent;

}

else

{

request.UserAgent = DefaultUserAgent;

} if (timeout.HasValue)

{

request.Timeout = timeout.Value;

} if (cookies != null)

{

request.CookieContainer = new CookieContainer();

request.CookieContainer.Add(cookies);

}

//如果需要POST数据

if (!(parameters == null || parameters.Count == 0))

{

StringBuilder buffer = new StringBuilder(); int i = 0;

foreach (string key in parameters.Keys)

{

if (i > 0)

{

buffer.AppendFormat("&{0}={1}", key, parameters[key]);

}

else

{

buffer.AppendFormat("{0}={1}", key, parameters[key]);

} i++;

}

byte[] data = requestEncoding.GetBytes(buffer.ToString());

using (Stream stream = request.GetRequestStream())

{ stream.Write(data, 0, data.Length); }

} return request.GetResponse() as HttpWebResponse;

}

private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)

{

return true; //总是接受

}

}

}

时间: 2024-10-03 09:10:40

C# 后台请求web服务方法的相关文章

请求web服务过程

静态: 客户端使用web浏览器经过网络连接到服务器上,使用http协议发起一个请求,告诉服务器要得到哪一个页面,html请求发给web服务器,例如apche,从文件系统取出内容,荣国web服务器返回客户端. 动态: 如果请求jsp, asp等动态资源,先将请求发给web容器,例如tomcat,连接数据可,拼凑内容,由tomcat呈现给客户. tomcat是web容器发布jsp等动态内容 apache也是web容器解析html,php. tomcat和apache都是装在web服务器上. html

监控web服务方法

本地监控:端口  netstat -anltup | grep 80  nmap ip -p 80 telnet ip:80 lsof -i :80|wc -l 进程 ps -ef| grep nginx |wc -l     pgrep nginx 服务 curl -o /dev/null -I -s -w "%{http_code}" http://www.baidu.com wget --spider --timeout=100 --tries=3 http://www.baid

12个强大的Web服务测试工具

在过去的几年中,web服务或API的普及和使用有所增加. web服务或API是程序或软件组件的集合,可以帮助应用程序进行交互或通过形成其他应用程序或服务器之间的连接执行一些进程/事务处理.基本上有两种类型的web服务——基于互联网协议,REST和SOAP推动数据和信息的通讯. 由于这些web服务暴露于网络并且分布于不同的网络,所以它们很容易受到风险和安全威胁,从而影响基于它们的进程.因此,web服务或API测试非常有必要,可以确保它们执行正确并正确地响应查询. 市场上有不少商业和开源的测试工具可

kloxo增加了域名,怎么不能访问?如何重启web服务?

kloxo增加了域名,怎么不能访问?这是因为需要重新启动web服务. 有时候网站打不开,也可以尝试重启web服务. 重启web服务方法: 登录kloxo后台-->左边栏:服务器linux --> 服务--> apache 蓝色的圆点,第1个是启动,第2个是停止.(如下图红框处) 先点停止,等10秒,再点启动 如果您是lighttpd的web软件,那么就重启lighttpd那一行.

(转)ASP.NET Web 服务如何工作

https://msdn.microsoft.com/zh-cn/library/ms996410.aspx 发布日期 : 4/1/2004 | 更新日期 : 4/1/2004 摘要:了解 Microsoft ASP.NET Web 服务方法 (WebMethod) 如何为生成 Web 服务提供一种高效方法.WebMethod 可以将传统的 Microsoft .NET 方法公开为支持 HTTP.XML.XML 架构.SOAP 和 WSDL 的 Web 服务操作.WebMethod (.asmx

【转】Web服务器之Nginx详解(理论部分)

大纲 一.前言 二.Web服务器提供服务的方式 三.多进程.多线程.异步模式的对比 四.Web 服务请求过程 五.Linux I/O 模型 六.Linux I/O 模型具体说明 七.Linux I/O模型的具体实现 八.Apache 的工作模式 九.支持高并发的Web服务器 十.Nginx 详解 一.前言 注,在说Web服务器之前,先说说线程.进程.以及并发连接数. 1.进程与线程 进程是具有一定独立功能的程序,关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.从逻辑

用CXF发布Web服务

1.下载apache-cxf-2.7.6jar包,并把lib目录下的所有jar包导入项目 2.编写测试的实体类,示例如下: 1 package cn.bd.weather.entity; 2 3 import java.util.Date; 4 5 import javax.xml.bind.annotation.XmlRootElement; 6 /** 7 * 8 * @author Administrator 9 * @XmlRootElement 表示根元素 10 */ 11 @XmlR

Angular待办事项应用4——模拟web服务

内存服务器 angular提供了一个快速建立测试用的web服务方法,内存服务器(in-memory),让我们不用等待后端开发的进度 安装npm包 npm install --save angular-in-memory-web-api 构建数据模型 在todo文件夹创建文件todo-data.ts import { InMemoryDbService } from "angular-in-memory-web-api"; import { Todo } from "./tod

根据DNS的A记录负载均衡web服务请求

做为论坛站点:有两种类型的数据要处理:  1.结构化的数据:  如:用户名.用户发表的评论等,这些可以存储在关系型数据库中:  2.非结构化的数据:如:用户上传的附件.则存储到文件系统中. 论坛的架构: 使用两台httpd服务器来服务用户的访问请求.使用DNS的A记录做客户访问轮循到这两台服务器上.php做为httpd的模块工作. 论坛架构如下图所示: 一.搭建NFS文件共享服务器. 要点:保证192.168.60.99与192.168.60.40两台httpd服务器的进程能够往共享文件系统(目