我正在尝试将数据发送到服务器。当我发送请求时,它发送到服务器,但服务器得到它的空白。我不明白它为什么会发生。请帮我解决这个问题。
NSArray *keys = [NSArray arrayWithObjects:@"username",@"password",@"email",@"fullname",@"phone",@"status",nil];
NSArray *objects = [NSArray arrayWithObjects:@"test",@"123456",@"test999@test.com",@"name",@"234566343",@"1",nil];
NSDictionary *questionDict = [NSDictionary dictionaryWithObjects:objects forKeys:keys];
NSDictionary *jsonDict = [NSDictionary dictionaryWithDictionary:questionDict];
NSString *jsonRequest = [jsonDict JSONRepresentation];
RequestHandler *handler = [[RequestHandler alloc] init];
handler.method = @"POST";
handler.delegate = self;
NSLog(@"JSOnRequest -- %@",jsonRequest);
handler.postData = jsonRequest;
handler.requestName = @"registration";
handler.URL =@"http://demo.keshavinfotech.com/edv/user_register.php?";
[handler startRequest];
[handler release];
- (void)startRequest
{
NSURL *requestURL = [NSURL URLWithString:[NSString stringWithFormat:@"%@",mRequestURL]];//NSURLRequestReturnCacheDataElseLoad
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:requestURL
cachePolicy:NSURLRequestReturnCacheDataElseLoad
timeoutInterval:mTimeOut];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:[NSString stringWithFormat:@"%d", [mPostData length]] forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:[mPostData dataUsingEncoding:NSUTF8StringEncoding]];
self.connection = [[[NSURLConnection alloc]initWithRequest:request delegate:self] autorelease];
}
是服务器编码 - 解码问题还是其他什么???
答案 0 :(得分:1)
我使用以下参数调用服务器
WebserviceCall[622:f803] {
email = "test999@test.com";
fullname = name;
password = 123456;
phone = 234566343;
status = 1;
username = test;
}
然后响应就像下面的明智一样给我。
{"responseData":{"result":"failed","msg":"Please fill all the required fields"}}
你能不能给出正确的参数格式发送,我可以检查出来。
答案 1 :(得分:0)
尝试这样做:
//form you request like you did (I think it's ok), then
NSData *postData = jsonRequest;
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSMutableURLRequest *urlRequest = [[[NSMutableURLRequest alloc] init] autorelease];
[urlRequest setURL:@"http://demo.keshavinfotech.com/edv/user_register.php?"];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setValue:postLength forHTTPHeaderField:@"Content-Length"];
[urlRequest setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[urlRequest setValue:@"utf-8" forHTTPHeaderField:@"charset"];
[urlRequest setHTTPBody:postData];
[urlRequest setTimeoutInterval:60.0];//or whatever interval you prefer
NSURLConnection *tmpConn = [[[NSURLConnection alloc] initWithRequest:urlRequest delegate:self] autorelease];
self.connectionProperty = tmpConn;