请问各位大哥,ios如何把这些参数以JSON格式添加进post请求里,我总是出现404的链接错误,弄了好久,都不知道怎么改了?帮帮忙
NSString* requestUrlString = kAPI;
NSURL *baseURL = [NSURL URLWithString:[requestUrlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:baseURL];
[request setHTTPMethod:@"POST"];
NSString *postString =@"timestamp=参数1&channel=参数2&product=参数3...";
[request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]];
request.timeoutInterval = 30;
NSHTTPURLResponse *response = nil;
NSError *error = nil;
NSData *respData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:@"参数1",timestamp,@"参数2",channel,@"参数3",product,... nil]
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager POST:api parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
//成功处理
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
//失败处理
}];
网络请求出现404错误不一定是post方式请求的问题,最大的可能性是服务端出现了异常。
ASI的block的post请求方法:
// 创建请求
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:urlString]];
// 设置请求模式@"POST"
request.requestMethod = @"POST";
// 设置请求超时
request.timeOutSeconds = 30.0;
// 参数设置
for (NSString *key in parameter.allKeys)
{
id valueObj = [parameter objectForKey:key];
[request setPostValue:valueObj forKey:key];
}
// block 在非ARC下时使用,而ARC下则用weak
__weak ASIFormDataRequest *weakRequest = request;
// 设置请求成功时
[request setCompletionBlock:^{
}];
// 设置请求失败时
[request setFailedBlock:^{
}];
// 发送异步请求
[request startAsynchronous];
[request setPostValue:valueObj forKey:key] 另外确定一下,是不是服务器的问题。