1

我的 WCF Web 服务(svc 文件)在尝试以 json 格式发送数据时返回请求错误,包括丹麦字符,如æ、ø、å。

在我的 iOS 应用程序中,我提出这样的请求:

NSData *requestData = [NSData dataWithBytes:[jsonRequest UTF8String] length:[jsonRequest length]];

[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:[NSString stringWithFormat:@"%d", [requestData length]] forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody: requestData];

我的 WCF 服务接口如下所示:

    [OperationContract]
    [WebInvoke(Method = "POST", BodyStyle=WebMessageBodyStyle.WrappedRequest, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, UriTemplate = "/createNewPost")]
    NewPostReply CreateNewPost(CreatePostCredential createPostCredential);

当我不发送“æ ø å”时,一切正常,但在包含“æ ø å”时出现错误。

我是否必须更改运营合同或 web.config 中的某些内容?

4

1 回答 1

0

这就是我所做的:

我没有在 NSData 中发送请求数据,而是发送一个字符串并将其设置为使用 NSUTF8StringEncoding。

[request setHTTPBody: [requestDataString dataUsingEncoding:NSUTF8StringEncoding]]
于 2012-04-26T19:12:57.193 回答