我有一个要求,我已经将数据作为POST请求中的json字符串发布到Web API,并且post方法从主体检索数据。这对于大多数数据来说是完美的,但是当我在任何字段中的数据中都包含一个长破折号(-)时,它将无法正常工作。
我有一个包含一些字符串字段的Email类,并将其传递给API以保存在数据库中。 这是我实施呼叫的方法:
public string PostNewEmailRecord(string APIEndpoint, CampaignWave Email)
{
string StrEmailId = string.Empty;
_endpoint = APIEndpoint;
try
{
string strData = JsonConvert.SerializeObject(Email);
_client.Headers.Add(HttpRequestHeader.ContentType, "application/json");
_client.UploadString(APIEndpoint, _requestType, strData);
}
catch (Exception ex)
{
}
return StrEmailId;
}
这是Web API的post方法:
public void Post([FromBody]CampaignWave email)
{
try
{
using (var transaction = new TransactionScope())
{
CampaignWaveRepository cr = new CampaignWaveRepository();
object objReturnValue = cr.Insert(email);
transaction.Complete();
}
}
catch (Exception ex)
{
}
finally
{
}
}
当我包含破折号时,API post方法会收到一个空值作为电子邮件。
请帮助我如何成功通过“ —”而不会出现任何问题。预先感谢。
答案 0 :(得分:1)
基于注释,它可能是由编码引起的:
client.Encoding = Encoding.UTF8