使用包含丹麦字符的json数据调用时WCF Web服务请求错误

时间:2012-04-26 19:06:21

标签: .net ios wcf web-services

我的WCF Web服务(svc-file)在尝试使用json发送数据时返回Request Error,包括æ,ø,å等丹麦字符。

在我的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中更改某些内容?

1 个答案:

答案 0 :(得分:0)

这就是我的所作所为:

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

[request setHTTPBody: [requestDataString dataUsingEncoding:NSUTF8StringEncoding]]