C# 如何对Web Api操作进行post调用?

C# 如何对Web Api操作进行post调用?,c#,asp.net,asp.net-web-api,C#,Asp.net,Asp.net Web Api,我创建了一个WebAPI操作,如下所示 [HttpPost] public void Load(string siteName, string providerName, UserDetails userDetails) { // implementation } 我为此注册的路线如下(不确定是否正确): providerName参数应该是可选的,我正在使用Xml序列化 该操作应响应以下url示例: http://www.domain.com/sites/site1/user/load/pro

我创建了一个WebAPI操作,如下所示

[HttpPost]
public void Load(string siteName, string providerName, UserDetails userDetails)
{
// implementation
}
我为此注册的路线如下(不确定是否正确):

providerName参数应该是可选的,我正在使用Xml序列化

该操作应响应以下url示例:

http://www.domain.com/sites/site1/user/load/provider1/[some user details in the post]
or
http://www.domain.com/sites/site1/user/load/[some user details in the post]

我如何才能对此操作进行post调用,以便测试我的服务?

如果您的问题是如何测试您的操作,您可以使用

请参见以下内容:


使用RestSharp和Web请求查看此处的响应:


可选参数是否需要默认值?是,但可以稍后设置;《华盛顿邮报》不会把这一行动称为“c#class”。默认提供程序稍后从web.config加载。您发送的原始postdata不应该是xml格式的吗?另外,如果我有另一个UserDetails UserDetails输入参数,它如何知道应该将其分配给哪个参数?!您将如何发送更复杂的xml数据?您是否正在尝试制作原始帖子?
http://www.domain.com/sites/site1/user/load/provider1/[some user details in the post]
or
http://www.domain.com/sites/site1/user/load/[some user details in the post]
HttpWebRequest request =
    (HttpWebRequest)WebRequest.Create(@"http:\\domain.com\page.asp");

ASCIIEncoding encoding = new ASCIIEncoding();
string postData = "username=user";
postData += "&password=pass";
byte[] data = encoding.GetBytes(postData);

request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;

using (Stream stream = request.GetRequestStream())
{
    stream.Write(data,0,data.Length);
}

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

string responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();