由于项目需要:自己写了一个WebserviceDemo,把遇到的问题记下来。

方式一 :使用代理类来访问Webservice,此方式不讲解,感觉复杂(神坑)。

(生成的代理路径 C:\Users\admin\AppData\Local\Temp\FrameWork.WebService.DynamicWebServiceCalling.doAction5DD81ED96F54BCFBC7A4634BB01BE5CA.dll)

方式二:HTTP方式调用两个测试工具

1.POSTMan

2.Fiddler

3.本地测试什么都没有问题,部署到阿里云远程服务器,在本地用上面的调用工具,就提示500错误。

原来web.config里面默认Post设置是不允许远程调用webservice,改变一下配置就可以了。    
如果想在远程可以正常调用,需要修改web.config,在system.web节下面加上下面一段话即可。

<?xml version="1.0" encoding="utf-8"?>

<!--
有关如何配置 ASP.NET 应用程序的详细信息,请访问
http://go.microsoft.com/fwlink/?LinkId=169433
--> <configuration>
<system.web>
<compilation targetFramework="4.0" />
<webServices >
<protocols >
<add name="HttpSoap"/>
<add name="HttpPost"/>
<add name="HttpGet"/>
<add name="Documentation"/>
</protocols>
</webServices>
</system.web> </configuration>

  

下面是使用HTTP调用webservice的代码

   var url = "http://localhost:9000/WebServiceGSMTest.asmx/GetToken3";
string data = "Id=11111&name=222";
var retBack = HttpHelpers.RequestData(url, data, ReqMethod.POST, null, "application/x-www-form-urlencoded");

  

 public class HttpResponse
{
public bool Status; public string RetStr; public Exception Exception;
} public enum ReqMethod
{
POST, GET,
}

  

 /// <summary>
///
/// </summary>
/// <param name="url"></param>
/// <param name="data"></param>
/// <param name="method"></param>
/// <param name="header"></param>
/// <param name="contentType"></param>
/// <returns></returns>
public static HttpResponse RequestData(string url, string data, ReqMethod method, WebHeaderCollection header, string contentType = "application/json")
{
HttpWebRequest request = null;
HttpWebResponse response = null;
Stream stream1 = null;
StreamReader sr = null;
HttpResponse res = new HttpResponse();
try
{ request = (HttpWebRequest)WebRequest.Create(url);
request.Method = method.ToString();
if (header != null)
{
request.Headers = header;
}
request.ContentType = contentType;
if (method == ReqMethod.POST)
{
byte[] postdatabyte = Encoding.UTF8.GetBytes(data);
request.ContentLength = postdatabyte.Length;
request.KeepAlive = true;
Stream stream;
stream = request.GetRequestStream();
stream.Write(postdatabyte, 0, postdatabyte.Length); //设置请求主体的内容
stream.Close();
}
//接收响应
response = (HttpWebResponse)request.GetResponse();
stream1 = response.GetResponseStream();
sr = new StreamReader(stream1);
string str = sr.ReadToEnd();
res.Status = true;
res.RetStr = str;
}
catch (Exception ex)
{
res.Exception = ex;
}
finally
{
if (stream1 != null)
{
stream1.Close();
stream1.Dispose();
}
if (sr != null)
{
sr.Close();
sr.Dispose();
}
}
return res; }

  

Webservice HTTP的更多相关文章

  1. webService

    什么是webService WebService,顾名思义就是基于Web的服务.它使用Web(HTTP)方式,接收和响应外部系统的某种请求.从而实现远程调用.  1:从WebService的工作模式上 ...

  2. 开始webservice了

    一.WebService到底是什么 一言以蔽之:WebService是一种跨编程语言和跨操作系统平台的远程调用技术. 所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,客户端程序则可以采用 ...

  3. Spring WebService入门

    Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和配置这些应用程序,用于开发分布 ...

  4. 浅谈跨域以及WebService对跨域的支持

    跨域问题来源于JavaScript的同源策略,即只有 协议+主机名+端口号 (如存在)相同,则允许相互访问.也就是说JavaScript只能访问和操作自己域下的资源,不能访问和操作其他域下的资源. 在 ...

  5. 浅谈WebService的版本兼容性设计

    在现在大型的项目或者软件开发中,一般都会有很多种终端, PC端比如Winform.WebForm,移动端,比如各种Native客户端(iOS, Android, WP),Html5等,我们要满足以上所 ...

  6. Atitit webservice发现机制 WS-Discovery标准的规范attilax总结

    Atitit webservice发现机制 WS-Discovery标准的规范attilax总结 1.1. WS-Discovery标准1 1.2. 一.WS-Discovery1 1.2.1.   ...

  7. java调用CXF WebService接口的两种方式

    通过http://localhost:7002/card/services/HelloWorld?wsdl访问到xml如下,说明接口写对了. 2.静态调用 // 创建WebService客户端代理工厂 ...

  8. VS2010编写WebService与在IIS的发布<之简单讲解>

    工具VS2010,window环境win7 一:Webservice的创建与方法查看调用 1.新建空web应用程序项目 2.新建web服务 3.自动生成 4.直接跑起来,可以看到有2个方法 5.点击H ...

  9. webService学习之路(三):springMVC集成CXF后调用已知的wsdl接口

    webService学习之路一:讲解了通过传统方式怎么发布及调用webservice webService学习之路二:讲解了SpringMVC和CXF的集成及快速发布webservice 本篇文章将讲 ...

  10. webService学习之路(二):springMVC集成CXF快速发布webService

    继上一篇webService入门之后,http://www.cnblogs.com/xiaochangwei/p/4969448.html ,现在我将我周六在家研究的结果公布出来 本次集成是基于之前已 ...

随机推荐

  1. mysqlslap执行基准测试

    查看mysqlslap所支持的主要参数配置及说明如下 -a, --auto-generate-sql 由系统自动生成SQL脚本进行测试 Generate SQL where not supplied ...

  2. BZOJ3245:最快路线(最短路)

    Description 精明的小R每每开车出行总是喜欢走最快路线,而不是最短路线.很明显,每条道路的限速是小R需要考虑的关键问题.不过有一些限速标志丢失了,于是小R将不知道能开多快.不过有一个合理的方 ...

  3. 关于PHP上传文件失败但是找不到原因的问题?

    确定上传文件的前后台代码都准确无误后,可以考虑是不是PHP配置文件中限制了上传文件的大小 1.找到根目录中的PHP文件夹 2.点击当前正在使用的的PHP版本 3.搜索php.ini 4.打开 phpF ...

  4. 10.spring:常用的数据库代码.....(不长使用了解即可)

    测试代码: ApplicationContext ctx = new ClassPathXmlApplicationContext("JDBC.xml"); DataSource ...

  5. Selenium应用代码(常见封装的方法二)

    滚动窗口: //将滚动条滚到适合的位置 , 方法一 public static void setScroll(WebDriver driver,int height){ try { // String ...

  6. 在eclipse中配置Tomcat时,出现“Cannot create a server using the selected type”的错误。

    出现原因:Tomcat重新安装,并且安装目录改变了. 解决方案:在“Window->preferences->Server->Runtime Environment”,编辑Tomca ...

  7. 编程界失传秘术,SSO单点登录,什么是单点,如何实现登录?

    单点登录 多系统,单一位置登录,实现多系统同时登录的一种技术. 常出现在互联网应用和企业级平台中. 如:京东. 单点登录一般是用于互相授信的系统,实现单一位置登录,全系统有效的. 三方登录:某系统,使 ...

  8. python函数名应用

    函数名的应用 函数名 的应用分类: 函数就是一个特殊的变量(可以看成一个变量来用) *函数名对应函数的内存地址 *函数名可以做为容器类数据的元素 *函数名可以作为函数的参数 *函数名可以作为函数的返回 ...

  9. 慎使用sql的enum字段类型

    在sql的优化中,会有同学提到一点:使用enum字段类型,代替其他tinyint等类型.以前这也是不少人喜欢优化的,但是现在细想,是非常不合理的. 优点: 1.可以设置区间范围,比如设置性别:1男2女 ...

  10. day 19 反射

    1.isinstance, type, issubclass 的含义 isinstance:  判断你给对象时候是xxx类型的.(向上判断) type: 返回xxx对象的数据类型 issubclass ...