如何将长破折号(-)作为字符串数据的一部分发布到Web API的http发布请求中

时间:2019-06-05 14:37:17

标签: c# http asp.net-web-api

我有一个要求,我已经将数据作为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方法会收到一个空值作为电子邮件。

请帮助我如何成功通过“ —”而不会出现任何问题。预先感谢。

1 个答案:

答案 0 :(得分:1)

基于注释,它可能是由编码引起的:

client.Encoding = Encoding.UTF8