为什么我用TTURLRequest,post数据在服务器上解析不了啊

我如下代码发送请求,为什么在服务其上。用request.getParamter("name")
那不到值呢?

TTURLRequest *request = [self request:url Delegate:delegate];
[request setHttpMethod:@"POST"];
[request.parameters setObject:@"agassi_yzh" forKey:@"name"];
[request send];
阅读 6.2k
1 个回答

自己把问题解决了:

TTURLRequest的parameters中的数据设置的格式是发送文件的报文形式。

如果要用request.getParamter来解析。需要自己构造post的httpbody

这么写:

TTURLRequest *request = [self request:url Delegate:delegate];
	[request setHttpMethod:@"POST"];
    request.contentType=@"application/x-www-form-urlencoded";
	
	NSMutableString* postBodyString = [NSMutableString stringWithString:@""];
	
	if (nil != info) {
		[request setUserInfo:[NSDictionary dictionaryWithDictionary:info]];
	}
	
	if (nil != params) {
		for (NSString *key in [params allKeys]) {
			NSString* p = [NSString stringWithFormat:@"%@=%@",key,[[params valueForKey:key] URLEncodedString]];
			postBodyString = [NSString stringWithFormat:@"%@&%@",postBodyString,p];
		}
	}
	
	NSData* postData = [NSData dataWithBytes:[postBodyString UTF8String] length:[postBodyString length]];
	
	[request setHttpBody:postData];
	
	[request send];
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题