Wcf 服務http請求總結
阿新 • • 發佈:2018-11-29
最近有機會接近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>
第四,需要修改專案的屬性,這個算是最重要的
需要把整合修改為經典
第五,訪問
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; }