如何在httpclient帖子中发布多个字符串值

时间:2016-04-14 16:36:35

标签: c#

如何在HttpClient帖子中发布多个字符串值?

以下是构建参数的代码,

string s1 = "hi";
string s2 = "hello";    

"&param1="+s1+"&param2="+s2

My Web Api方法:

public HttpResponseMessage SaveItem(string param1,string param2)
{
    // what to write here???
}

1 个答案:

答案 0 :(得分:0)

您可以使用in the pxd file方法构建查询字符串,而不是连接您的值:

var querystring = String.Format("&param1={0}&param2={1}",s1,s2);

或者在较新版本的C#中,您可以使用String.Format()执行相同的操作:

var querystring = $"&param1={s1}&param2={s2}";

考虑编码您的QueryString

正如String Interpolation operator $所述,对这些参数进行编码通常是一个好主意,特别是如果您要接受可能会干扰您预期行为的非字母数字输入或输入(例如&# 39;#','&'等)。您可以通过多种方式执行此操作,例如Slaks方法,或者如果您在Web应用程序之外工作,HttpUtility.UrlEncode()

// Use HttpUtility for Web Applications and WebUtility for non-web ones
var querystring = $"&param1={HttpUtility.UrlEncode(s1)}&param2={HttpUtility.UrlEncode(s2)}");

WebUtility.UrlEncode()方法也是另一种流行的选择,它基本上可以完成同样的事情。