我对网络服务/ api电话相当陌生
我得到了一个用于开发的wsdl。
http://bogus.com/SM/7/ServiceCatalogAPI.wsdl
我使用Visual Studio 2010 c#.net 4.0
添加了对wsdl的服务引用我已获得用户名/密码(基本身份验证)
我正在寻找有关如何处理请求的指导。我在正确的道路上吗?
我有以下内容,但我收到'无法将类型'字符串'隐式转换为'SM9.ServiceReference1.StringType'
protected void Button1_Click(object sender, EventArgs e)
{
try
{
ServiceReference1.CreateCartRequest createCart = new ServiceReference1.CreateCartRequest();
string result = createCart.model.instance.BriefDescription = "Testing SM9";
Label1.Text = result.ToString();
}
catch (System.Exception ex)
{
Label1.Text = ex.Message;
}
}
SOAP请求
<?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" xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:ns="http://schemas.hp.com/SM/7" xmlns:cmn="http://schemas.hp.com/SM/7/Common">
<soap:Body>
<ns:CreateCartRequest>
<ns:model>
<ns:keys/>
<ns:instance>
<ns:BriefDescription type="">Brief Description</ns:BriefDescription>
<ns:Description type="">
<ns:Description type="">description 1</ns:Description>
<ns:Description type="">description 2</ns:Description>
</ns:Description>
</ns:instance>
</ns:model>
</ns:CreateCartRequest>
</soap:Body>
</soap:Envelope>
SOAP响应
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<CreateCartResponse message="Success" returnCode="0" schemaRevisionDate="2012-09-12" schemaRevisionLevel="0" status="SUCCESS" xmlns="http://schemas.hp.com/SM/7" xmlns:cmn="http://schemas.hp.com/SM/7/Common" xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.hp.com/SM/7 http://SE104636.devfg.RBC.com:12700/SM/7/Cart.xsd">
<model>
<keys>
<CartID type="Decimal">11</CartID>
</keys>
<instance recordid="11" uniquequery="cartId=11">
<CartID type="Decimal">11</CartID>
<Completed type="Boolean">false</Completed>
<BriefDescription type="String">Brief Description</BriefDescription>
<Owner type="String">SOAP USER</Owner>
<Description type="Array">
<Description type="String">description 1</Description>
<Description type="String">description 2</Description>
</Description>
<Cost type="Decimal">0</Cost>
</instance>
</model>
<messages>
<cmn:message>svcCart record added.</cmn:message>
</messages>
</CreateCartResponse>
</SOAP-ENV:Body>
答案 0 :(得分:0)
看起来BriefDescription
不是字符串类型。尝试这样的事情:
string result = createCart.model.instance.BriefDescription = new StringType("Testing SM9");
或
string result = createCart.model.instance.BriefDescription = new StringType() { Value = "Testing SM9" };
(抱歉,我不知道“StringType”实际上有哪些属性)。