【问题标题】:REST WebService C# is not accepting EmoticonsREST WebService C# 不接受表情符号
【发布时间】:2015-07-16 21:20:18
【问题描述】:

我有一个 REST Web 服务,它接受来自 Windows 8.1 应用程序的反馈。在用户将表情符号插入文本之前,一切正常。

示例:这太棒了! ???

发生这种情况时,我得到:{StatusCode: 400, ReasonPhrase: 'Bad Request', Version: 1.1, Content: System.Net.Http.StreamContent, Headers: { 日期:格林威治标准时间 2015 年 7 月 16 日星期四 21:05:54 服务器:Microsoft-IIS/10.0 X-Powered-By: ASP.NET 内容长度:1806 内容类型:文本/html }}

我不知道为什么会这样。

这是我的服务代码:

    [OperationContract]
    [WebInvoke(
        Method = "POST", 
        ResponseFormat = WebMessageFormat.Json,
        RequestFormat = WebMessageFormat.Json,
        UriTemplate = "PostFeedback")]
    void CaptureFeedback(feedback tmpFeedback);

处理代码:

    public void CaptureFeedback(feedback myFeedBack)
    {
        using (dbemployeedirectoryEntities entities = new dbemployeedirectoryEntities())
        {
            feedback tmpFeedback = new feedback();

            tmpFeedback.FeedbackGUID = System.Guid.NewGuid().ToString();
            tmpFeedback.Rating = myFeedBack.Rating;
            tmpFeedback.FeedbackMessage = myFeedBack.FeedbackMessage;
            tmpFeedback.TimeStamp = myFeedBack.TimeStamp;
            tmpFeedback.Hostname = myFeedBack.Hostname;

            entities.feedbacks.Add(myFeedBack);

            entities.SaveChanges();
        }
    }

班级:

    public partial class feedback
    {
       public string FeedbackGUID { get; set; }
       public Nullable<int> Rating { get; set; }
       public string FeedbackMessage { get; set; }
       public Nullable<System.DateTime> TimeStamp { get; set; }
       public string Hostname { get; set; }
    }

我将请求编码为 UTF8:

HttpResponseMessage myResponse = null;

        var myClient = new HttpClient();

        myClient.BaseAddress = new Uri(BaseAddress);

        var content = new StringContent(myJSON, Encoding.UTF8, "application/json");

        try
        {
            myResponse = await myClient.PostAsync(myURI, content);
            return myResponse;
        }
        catch (Exception ex)
        {
            throw ex;
        }

有什么想法吗?

【问题讨论】:

  • 客户端应用程序需要转义表情符号字符串,这些字符串通常是: :} :P 等。如果转义不正确,某些字符会产生错误的请求。

标签: c# asp.net web-services rest iis


【解决方案1】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-02
  • 1970-01-01
  • 2014-03-27
  • 1970-01-01
相关资源
最近更新 更多