通过Xamarin连接到Web服务

时间:2018-08-08 04:43:35

标签: c# web-services xamarin xamarin.android

我是Xamarin的新手,正在尝试连接到地址为http://smartasset-utw.malaysiaairports.com.my:5010/service1.asmx?op=GetUserLogin的客户端Web服务。这用于验证登录名。我使用的代码如下。

var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/xml"));
httpClient.DefaultRequestHeaders.Add("SOAPAction", "http://smartasset-utw.malaysiaairports.com.my:5010/service1.asmx?WSDL");
string wUser = "XXXXX";
string wPassword = "xxxxxxxx";
string soapstr = string.Format(@"<?xml version=""1.0"" encoding=""utf-8""?>
	 <soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">
		  <soap:Body>
			<GetUserLogin xmlns=""http://tempuri.org/"">
			  <userName>{0}</userName>
			  <password>{1}</password>
			</GetUserLogin>
		  </soap:Body>
		</soap:Envelope>", wUser, wPassword);
var response = httpClient.PostAsync("http://smartasset-utw.malaysiaairports.com.my:5010/service1.asmx?WSDL", new StringContent(soapstr, Encoding.UTF8, "text/xml")).Result;
var content = response.Content.ReadAsStringAsync().Result;

不幸的是,我得到的答复是:

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><soap:Fault><faultcode>soap:Client</faultcode><faultstring>Server did not recognize the value of HTTP Header SOAPAction: http://smartasset-utw.malaysiaairports.com.my:5010/service1.asmx.</faultstring><detail /></soap:Fault></soap:Body></soap:Envelope>

任何帮助将不胜感激, 谢谢

0 个答案:

没有答案