版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xunbaogang/article/details/82388145
最近有机会接近WCF 服务,但公司要求修改为http请求的时候发现一些问题,自己总结出来
环境使用的是vs2015
添加项目的时候:需要选择wcf应用程序
其次,添加完项目后需要修改方法
第三,需要修改配置文件
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding name="webBinding"/>
</webHttpBinding>
</bindings>
<services>
<service name="WcfService2.Service1" behaviorConfiguration="serviceBehavior">
<endpoint address="" behaviorConfiguration="webBehavior" binding="webHttpBinding" bindingConfiguration="webBinding" contract="WcfService2.IService1"/>
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="webBehavior">
<!--这里必须设置-->
<webHttp/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="serviceBehavior">
<!-- 为避免泄漏元数据信息,请在部署前将以下值设置为 false -->
<serviceMetadata httpGetEnabled="true"/>
<!-- 要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息 -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<!--
若要在调试过程中浏览 Web 应用程序根目录,请将下面的值设置为 True。
在部署之前将该值设置为 False 可避免泄露 Web 应用程序文件夹信息。
-->
<directoryBrowse enabled="true"/>
</system.webServer>
第四,需要修改项目的属性,这个算是最重要的
需要把集成修改为经典
第五,访问
扫描二维码关注公众号,回复:
4294131 查看本文章
static void Main(string[] args)
{
string rvalue = GetHttpResponse("http://localhost:23444/Service1.svc/GetRS/122/第二个参数", 2000);
}
public static string GetHttpResponse(string url, int Timeout)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
request.ContentType = "textml;charset=UTF-8";
request.UserAgent = null;
request.Timeout = 6000;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
return retString;
}