Asp.net web api 如何将带有空格的参数发送到.net web api

Asp.net web api 如何将带有空格的参数发送到.net web api,asp.net-web-api,Asp.net Web Api,我希望收到一个长字符串,其中包含web api中我的方法的空格 据我所知,我不能发送带有空格的参数,它必须以某种方式编码吗 编辑: 我的内容类型是: Content-Type: application/x-www-form-urlencoded 我已将其更改为其他几种类型,但它们都不允许我接收带有+而不是空格的参数 我的post方法签名是 public HttpResponseMessage EditCommentForExtension(string did, string extenti

我希望收到一个长字符串,其中包含web api中我的方法的空格

据我所知,我不能发送带有空格的参数,它必须以某种方式编码吗

编辑:

我的内容类型是:

Content-Type: application/x-www-form-urlencoded 
我已将其更改为其他几种类型,但它们都不允许我接收带有+而不是空格的参数

我的post方法签名是

public HttpResponseMessage EditCommentForExtension(string did, string extention, string comment)

通常,HTTP GET请求的参数为。这意味着(除其他外)空格被“+”取代。对我来说,唯一有效的方法是添加%20而不是空格。使用
+
表示URL中的“空格”是一些网站使用的内部约定,但它不是URL编码标准的一部分。如果您想使用
+
表示空格,您必须自己转换它们

正如您所发现的,空格(就像其他需要编码的东西一样)应该用
%XX
编码,其中X是十六进制数字的标准


谢谢,我试过了,没用。顺便说一句,这是一个post请求这应该是答案,OP需要URL编码您提到的所有字符串参数值这是一个post请求。请提供所发送请求正文的示例。我们需要知道标题和控制器POST方法签名中指定的内容类型。正如Mark所说,您使用的媒体类型定义了内容的编码方式。这个问题与asp.net Web API无关。好的,这就是我的请求看起来像接受的方式:text/json用户代理:Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.31(KHTML,像Gecko)Chrome/26.0.1410.64 Safari/537.31内容类型:application/x-www-form-urlencoded接受编码:gzip,deflate,sdch接受语言:he,en-US;q=0.8,en;q=0.6,es;q=0.4接受字符集:windows-1255,utf-8;q=0.7,*;q=0.3我认为重要的一个是:内容类型:application/x-www-form-urlencoded我的post方法签名是:public HttpResponseMessage EditCommentForExtension(string did,string extension,string comment)
+
仅在querystring值中可接受,而
%20
可在请求路径和querystring中使用。e、 g.
http://example.com/folder%20with%20spaces/search?key1=value1%20%with%20spaces&key2=value2+使用+空格