IOS post请求? 400 报错
ios中post的请求不知道怎么实现
比如说一个请求地址www.website.com
然后需要把(key,value)为(key1,value1),(key2,value2),(key3,value3)的值设进去
应该怎么做呢
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
相当于是通过 POST 方法传递参数,在下面地址里有很多 iOS 的 HTTP 编程方面的文章,找一下,有的:)
http://www.oschina.net/ios/264/ios-http
//NSDictionary的key要和post提交的变量名相对应
- (NSString *)post:(NSString *)postUrl withData:(NSMutableDictionary *)postData {
NSURL *url = [NSURL URLWithString:postUrl];
ASIFormDataRequest *request=[ASIFormDataRequest requestWithURL:url];
NSEnumerator *enumerator = [postData keyEnumerator];
id key;
while (key = [enumerator nextObject]) {
//检查是否要上传文件
if ([key isEqual:UPLOAD_FILES_DICT]) {
NSDictionary *uploadFiles = [postData objectForKey:key];
if ([uploadFiles count] > 0) {
for (id k in uploadFiles) {
NSString *fileName = [uploadFiles objectForKey:k];
if ([[NSFileManager defaultManager] fileExistsAtPath:fileName]) {
[request setFile:fileName forKey:k];
}
}
}
} else {
[request setPostValue:[postData objectForKey:key] forKey:key];
}
}
//设置30s超时
[request setTimeOutSeconds:30];
[request startSynchronous];
int httpStatusCode = [request responseStatusCode];
NSString *response = @"";
if (httpStatusCode < 400 && httpStatusCode > 100) {
response = [request responseString];
NSLog(@"Ret:%@", response);
}
return response;
}