如何使用AFNetworking发送与字符串连接的参数?

时间:2015-04-19 04:14:59

标签: ios objective-c afnetworking

我必须将原始正文数据发布到服务器,例如:param={username=@"",password=@""}。我知道如何发送参数但是如何发送param={}? M尝试下面的代码,但失败了。

 NSDictionary *params =@{@"username":self.UsernameTF.text, @"password":self.PswdTF.text};
[manager POST:@"http://clients.view9.com.au/golfapp/cidev/admin-panel/service/registerNewUser" parameters:[NSString stringWithFormat@"param=%@",params]

编辑: 下面的代码给出了我想要发布到服务器的内容,但是如何删除卷曲的起始大括号

  NSMutableDictionary *paramArray=[[NSMutableDictionary alloc] init];


[paramArray setObject:self.UsernameTF.text forKey:@"username"];
[paramArray setObject:self.PswdTF.text forKey:@"password"];


NSDictionary *params =[[NSDictionary alloc] initWithObjectsAndKeys:paramArray,@"params", nil];

3 个答案:

答案 0 :(得分:0)

NSString *url = @"http://clients.view9.com.au/golfapp/cidev/admin-panel/service/registerNewUser";

NSDictionary *params = @{@"param":[NSString stringWithFormat:"username=%@,password=%@",self.UsernameTF.tex, self.PswdTF.text]};

[manager POST:url parameters:params];
嘿,试试吧。 告诉我它是否不起作用!

答案 1 :(得分:0)

尝试

[manager setRequestSerializer:[AFHTTPRequestSerializer serializer]];
[manager POST:url parameters:[NSString stringWithFormat@"param=%@",params]];

答案 2 :(得分:0)

这种情况下的问题是你没有向服务器发送JSON,你发送的url表单enconding碰巧在等号的右边有一个JSON字符串。

如果您可以控制服务器,我建议您使用完整的JSON方法并让服务器接受

{"param":{"username":"yourusername","password":"yourpassword"}}

{"username":"yourusername","password":"yourpassword"}

但如果不可能,你需要:

  • 将请求序列化程序从AFJSONRequestSerializer更改为 AFHTTPRequestSerializer
  • 将字典转换为JSONString
  • 设置一个新词典{@" param":YourJSONString}

如果你看一下YourJSONString的内容应该是这样的:

@"{\"username\":\"yourusername\",\"password\":\"yourpassword\"}"

当最终解析到请求的主体时:

param={"username":"yourusername","password":"yourpassword"}