如何将HTTP Post的整个主体作为单个字符串传递给WebAPI

Gon*_*ing 2 http-post asp.net-web-api

我有一个"查找"WebAPI服务,它返回查询表数据,如Salutations(Mr Mrs etc)和一些更长时间(例如业务类型).

为了省去自己手动填充查找表的麻烦,我添加了一个HttpPost方法,假设我可以使用Fiddler2 简单地在主体中传递一行分隔的数据集.这样我就可以将数据列表粘贴到fiddler中,并在几秒钟内添加所有查找:

    // post api/lookup/lookupName
    [HttpPost]
    public void SaveNewLookups([FromUri(Name="id")] string lookupName, [FromBody]string body)
Run Code Online (Sandbox Code Playgroud)

但是现在我对内容类型的尝试很重要,当命中方法时,body参数始终为null.

我通过使用以下代码来访问原始正文文本,但是让参数化版本工作会很好:

string body = Request.Content.ReadAsStringAsync().Result;
Run Code Online (Sandbox Code Playgroud)

我不想使用JSON或其他格式的数据,因为这会破坏使用简单文本列表的目的.

Jon*_*iak 5

放入'Content-Type: application/x-www-form-urlencoded'请求标头,然后将您的字符串内容放入fiddler,前面加一个等号(=).例如:

=datavalue1
datavalue2
Run Code Online (Sandbox Code Playgroud)

您应该在控制器中收到您的数据值:

datavalue1\r\ndatavalue2
Run Code Online (Sandbox Code Playgroud)