【发布时间】: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