ios - 将 NSString 变量发送到 WCF 服务

标签 ios objective-c wcf

当我想将 NSString 变量发送到我的 WCF Web 服务时,我的代码遇到了问题。

代码:

NSString *str= @"http://IPdAddress/myService.svc/json/";
str=[str stringByAppendingFormat:@"InsertNewWeight/%@",noteWeight.text];

NSURL *WcfSeviceURL = [NSURL URLWithString:str];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:WcfSeviceURL];

[request setHTTPMethod:@"POST"];

如果我将 noteWeight.text 值作为一个简单的词输入,则此代码可以正常工作。

当我将 noteWeight.text 值输入为复杂单词(两个单词用空格分隔)时,系统返回错误 data parameter is nil

有人可以帮我解决这个问题吗?谢谢。

最佳答案

由于它是在 URL 中传递的,而不是作为 POST 参数传递的,因此您应该对 noteWeight.text 字符串进行 URL 编码,如下所示:

str = [str stringByAppendingFormat:@"InsertNewWeight/%@", [noteWeight.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

空格将作为 %20 发送,其他特殊字符也将被编码以便在服务器端正确读取。

关于ios - 将 NSString 变量发送到 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22203468/

相关文章:

ios - 为新应用重用 Xcode 项目

iphone - iOS 7.1 : UIButton's selected title not working

objective-c - 下载没有 NSUrl/CFNetwork 的文件

c# - 当无法序列化枚举时,尽早失败或明确抛出

c# - wcf http 绑定(bind)与 dualhttp 绑定(bind)

ios - DTCoreText 图像不显示

ios - 核心数据在我删除它并重新启动我的应用程序后仍然存在

ios - Swift 3 将位置作为 iMessage 发送

objective-c - GCD 在 iOS5 中崩溃

c# - 一个 WCF 服务的两个 throttle