欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Asp.NETCore怎么調(diào)用WebService的方法-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)Asp.NET Core怎么調(diào)用WebService的方法,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)建站專注于中大型企業(yè)的成都做網(wǎng)站、成都網(wǎng)站建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)和網(wǎng)站改版、網(wǎng)站營銷服務(wù),追求商業(yè)策劃與數(shù)據(jù)分析、創(chuàng)意藝術(shù)與技術(shù)開發(fā)的融合,累計(jì)客戶上千多家,服務(wù)滿意度達(dá)97%。幫助廣大客戶順利對接上互聯(lián)網(wǎng)浪潮,準(zhǔn)確優(yōu)選出符合自己需要的互聯(lián)網(wǎng)運(yùn)用,我們將一直專注成都品牌網(wǎng)站建設(shè)和互聯(lián)網(wǎng)程序開發(fā),在前進(jìn)的路上,與客戶一起成長!

0.使用背景

因?yàn)楝F(xiàn)在的項(xiàng)目都是基于 .NET Core 的,但是某些需要調(diào)用第三方的 WebService 服務(wù),故有了此文章。其基本思路是通過微軟提供的 Svcutil 工具生成代理類,然后通過 System.ServiceModel 來調(diào)用代理類所提供的對象與方法。

1.配置準(zhǔn)備

1.1 新建并編輯項(xiàng)目

首先新建一個(gè)新的 .NET Core 控制臺(tái)程序,通過命令行窗口或者 Powershell 執(zhí)行以下命令新建一個(gè)項(xiàng)目。

dotnet new console

Asp.NET Core怎么調(diào)用WebService的方法

然后編輯項(xiàng)目文件 WebServiceConsole.csproj ,并在其中加入以下內(nèi)容:

<ItemGroup>
 <DotNetCliToolReference Include="dotnet-svcutil" Version="1.0.*" />
</ItemGroup>

這樣最終 WebServiceConsole.csproj 的內(nèi)容會(huì)是這樣子的。

<Project Sdk="Microsoft.NET.Sdk">

 <PropertyGroup>
 <OutputType>Exe</OutputType>
 <TargetFramework>netcoreapp2.1</TargetFramework>
 </PropertyGroup>

 <ItemGroup>
 <DotNetCliToolReference Include="dotnet-svcutil" Version="1.0.*" />
 </ItemGroup>
</Project>

繼續(xù)打開命令行窗口或者 Powershell 執(zhí)行以下命令,還原項(xiàng)目文件的包。

dotnet restore

Asp.NET Core怎么調(diào)用WebService的方法

1.2 代理類生成

現(xiàn)在準(zhǔn)備工作做好了,現(xiàn)在我們可以使用dotnet svcutil 命令來生成代理類,或者你可以到 WindowsSDKs 的目錄下找到 SvcUtil.exe 來執(zhí)行代理類生成操作。

dotnet svcutil [WebService 地址]

上面是命令格式,比如說我這里有一個(gè) WebService 提供的接口,其地址為 http://localhost:3000/bsp-oisp/ws/sfexpressService?wsdl ,那么我們需要打開命令行工具,執(zhí)行以下命令來生成代理類。

復(fù)制代碼 代碼如下:

dotnet svcutil http://localhost:3000/bsp-oisp/ws/sfexpressService?wsdl](http://localhost:3000/bsp-oisp/ws/sfexpressService?wsdl

Asp.NET Core怎么調(diào)用WebService的方法

成功之后會(huì)看到文件夾里面多了一個(gè)文件夾。

注意,在生成代理類之后,我們還需要再執(zhí)行一次dotnet restore 來還原代理類當(dāng)中所使用到的 NuGet 包。

2.調(diào)用 WebService 接口

生成代理類之后,重新打開項(xiàng)目,可以看到多了一個(gè) ServiceModel1 的文件夾,在里面還有一個(gè) Reference.cs 的文件,這個(gè)文件里面的內(nèi)容就是根據(jù)我們之前提供的 Url 生成的代理類了。

用法的話很簡單,需要三步,在這里我直接在Main() 方法內(nèi)部寫調(diào)用方法了,注意這里基本上所有生成的方法都是異步方法。

using System;
using System.ServiceModel;
using System.Threading.Tasks;

namespace WebServiceConsole
{
 class Program
 {
 static async Task Main(string[] args)
 {
  // 創(chuàng)建 HTTP 綁定對象
  var binding = new BasicHttpBinding();
  // 根據(jù) WebService 的 URL 構(gòu)建終端點(diǎn)對象
  var endpoint = new EndpointAddress(@" http://localhost:3000/bsp-oisp/ws/sfexpressService?wsdl](http://localhost:3000/bsp-oisp/ws/sfexpressService?wsdl");
  // 創(chuàng)建調(diào)用接口的工廠,注意這里泛型只能傳入接口
  var factory = new ChannelFactory<IExpressService>(binding, endpoint);
  // 從工廠獲取具體的調(diào)用實(shí)例
  var callClient = factory.CreateChannel();
  // 調(diào)用具體的方法,這里是 sfexpressServiceAsync 方法。
  var result = await callClient.sfexpressServiceAsync(new sfexpressService());

  Console.ReadLine();
 }
 }
}

3.注意事項(xiàng)


報(bào)文長度問題,我在call 一個(gè)QAS service時(shí),因?yàn)閳?bào)文過長,出過錯(cuò)誤,所以報(bào)文長度好手動(dòng)設(shè)置一下,防止默認(rèn)長度不夠(默認(rèn)長度我測試是65536)。

binding.MaxReceivedMessageSize=2000000

https需要設(shè)置。代碼如下:

channelFactory.Credentials.ServiceCertificate.SslCertificateAuthentication =
new X509ServiceCertificateAuthentication()
{
CertificateValidationMode = X509CertificateValidationMode.None,
RevocationMode = X509RevocationMode.NoCheck
};

在call某些特殊的Web Service時(shí),生成的代理類model無法解析服務(wù)返回報(bào)文,這種情況我只在Call QAS時(shí)遇到,在這里就詳細(xì)描述下問題,QAS是一個(gè)國外提供地址校驗(yàn)的服務(wù)提供商,我們用他們提供的一個(gè)軟件安裝后生成的Web Service服務(wù)在轉(zhuǎn)發(fā)到他們自己的服務(wù)上。所以在生成代理類的時(shí)候,就出現(xiàn)生成代理類里面的model無法解析他的返回報(bào)文,經(jīng)過查閱代理類代碼,發(fā)現(xiàn)他在生成返回報(bào)文的model中,返回字段有些會(huì)加上一個(gè)特性標(biāo)記,而這些標(biāo)記是錯(cuò)誤的,所以只要去掉就行。
例:

[System.Xml.Serialization.XmlElementAttribute(Order=0)]
public string Country { get; set; }

Update如下即可

public string Country { get; set; }

關(guān)于“Asp.NET Core怎么調(diào)用WebService的方法”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。

名稱欄目:Asp.NETCore怎么調(diào)用WebService的方法-創(chuàng)新互聯(lián)
鏈接URL:http://aaarwkj.com/article42/ihgec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、企業(yè)建站服務(wù)器托管、網(wǎng)站策劃、微信公眾號(hào)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
亚洲日本中文字幕免费观看| 中文字幕国产精品综合一区| 精品国产乱码一区二区三区| 欧美 日韩亚洲一区| 国产91对白在线观看| 韩国日本午夜福利在线| 特色特色欧美黄色影院| 中文字幕在线一区国产精品| 精品一级人片内射视频| 午夜福利亚洲免费久久| 九九九热免费在线观看| 久久久亚洲福利精品午夜| 麻豆片免费观看在线看| 日韩一区二区三区四区精品| 亚洲免费观看视频一区二区三区| 日本少妇三级网站大全| 亚洲七七久久精品中文国产| 久久精品国产亚洲av热老太| 蜜臀av一区二区在线观看| 天天操操操操操操夜夜爽| 亚洲欧洲另类美女久久精品| 少妇视频资源一区二区三区| 日本免费的高清一区二区| 黄色录像黄色片黄色片| 日韩精品综合成人欧美| 日本大胆高清人体艺术| 十八女毛片一区二区三区| 亚洲最大黄色免费在线观看| 日韩欧美一区二区三区不卡在线| 日本精品a秘在线观看| 国产在线成年人免费观看| 亚洲国产精品一区二区三区在线 | 精品人妻人伦一区二区三区| 欧美日韩国产另类久久| 欧美日韩国产精品综合| 中国成熟女人毛茸茸视频| 日韩欧美一区二区不卡在线| 最新国产成人免费在线视频| 日韩一区二区三区高清免费视频成人 | 欧美日韩国产这里只有精品| 熟女熟妇乱女乱妇综合网|