用于处理重复/多个项的 C# Web 服务



我是使用Web服务的新手。我向外部公司实施了肥皂发布操作。工作很棒。我现在想开始创建自己的,供人们与我们互动。我已经创建了基本的添加服务作为所有教程等。

现在我想创建一个您下订单的服务。目前,我只是将订单写入以PO nr作为文件名的文本文件。进行测试,只向它提交 1 个项目。但我希望他们在通话中通过多个项目传递它。这就是我现在得到的。

C#

public struct OrderSystem
{
public string ResultMsg;
}

[WebMethod(MessageName = "Submit Order", Description = "Submit Order")]
public OrderSystem Order(string Custnr,string POnr, string[] Item , int[] qty)
{ 
using (System.IO.StreamWriter file =
new System.IO.StreamWriter(@"C:UsersPublicTestFolder"+POnr+".txt"))
{
file.WriteLine(Custnr);
file.WriteLine(POnr);
for (int i =0; i< Item.Length; i++)
{
file.WriteLine("LineItem" + i +Item[i] + " | "+qty[i]);
}  
}
OrderSystem result;
result.ResultMsg = "Complete";
return (result);
}

当前 XML 调用它的方式。对他们设计一个打电话给我不友好

POST /Orders.asmx HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/Submit Order"
<?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>
<Submit_x0020_Order xmlns="http://tempuri.org/">
<Custnr>string</Custnr>
<POnr>string</POnr>
<Item>
<string>string</string>
<string>string</string>
</Item>
<qty>
<int>int</int>
<int>int</int>
</qty>
</Submit_x0020_Order>
</soap:Body>
</soap:Envelope>

我想如何制作 xml 调用文件来查看。

POST /Orders.asmx HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/Submit Order"
<?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>
<Submit_x0020_Order xmlns="http://tempuri.org/">
<Custnr>000223</Custnr>
<POnr>988590</POnr>
<ItemList>
<Item>
<ItemNr>1</Item>
<Item>ABC123</Item>
<Qty>2</Qty>
</Item>
<Item>
<ItemNr>2</Item>
<Item>ASC123</Item>
<Qty>45</Qty>
</Item>
<Item>
<ItemNr>3</Item>
<Item>XYZKKF</Item>
<Qty>4</Qty>
</Item>
<Item>
<ItemNr>4</Item>
<Item>FGH789</Item>
<Qty>6</Qty>
</Item>
</ItemList>
</Submit_x0020_Order>
</soap:Body>
</soap:Envelope>

如何更改我的 C# 服务以处理该 XML 文件。

提前谢谢你 问候

首先,不要在2018年使用ASMX创建新服务。它已经被弃用了几年了。使用 WCF 或 Web API。

该解决方案适用于所有技术。只需创建一个类:

public class Item
{
public string ItemNr { get; set; }
public int Quantity { get; set; }
}

并让您的服务接受该类的列表。

相关内容

  • 没有找到相关文章

最新更新