2017-02-22 78 views
0

我对HTTP POST请求下面的代码,HTTPS POST目标C

FIRDatabaseReference *agreementCreateReference = [[[FIRDatabase database] referenceWithPath:@"/agreements/"] childByAutoId]; 
NSLog(@"autoId %@",agreementCreateReference.key); 
NSLog(@"autoId %@",_propertyId); 
NSString *post = [NSString stringWithFormat:@"agreementId=%@&listingId=%@",agreementCreateReference.key,_propertyId]; 
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 
[request setURL:[NSURL URLWithString:@"https://krib-api-onbit.herokuapp.com/api/agreements"]]; 
[request setHTTPMethod:@"POST"]; 
[request setValue:idToken forHTTPHeaderField:@"X-FIREBASE-ID-TOKEN"]; 
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
[request setHTTPBody:postData]; 
NSLog(@"%@",request); 

NSURLSession *session = [NSURLSession sharedSession]; 
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { 
    NSLog(@"data dtat %@",data); 
}]; 
[dataTask resume]; 

该网址与参数和头在邮差返回数据。当我使用上面的代码使用目标c获取数据时,我获得了<42616420 52657175 6573740a>作为数据。而不是调用后端。

+0

替换'的NSLog(@ “数据政变%@”,数据);与''的NSString * RES = [[NSString的页头] initWithData:数据编码:NSUTF8StringEncoding]; NSLog(@“res%@”,res);' –

+0

'NSString * stringResponse = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];'with(''42616420 52657175 6573740a'''表示'Bad Request'。什么是关于它的文档?你用POSTMAN尝试了吗?那么'NSData * postData = [NSJSONSerialization dataWithJSONObject:@ {@“agreementId”:agreementCreateReference.key,@“listingId”:_propertyId} options:nil error:nil];'? – Larme

+0

不,这不会返回任何内容或在服务器中打印任何内容。在邮差中,它正在返回数据并在服务器中打印请求。 – shamila

回答

0

在这个问题上花了几个小时后,我通过URl发送了参数,它返回了数据并在后端打印了请求。任何人的代码如下。

FIRDatabaseReference *agreementCreateReference = [[[FIRDatabase database] referenceWithPath:@"/agreements/"] childByAutoId]; 
         NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 
         NSString *url = [NSString stringWithFormat:@"https://krib-api-onbit.herokuapp.com/api/agreements?agreementId=%@&listingId=%@",agreementCreateReference.key,_propertyId]; 
         [request setURL:[NSURL URLWithString:url]]; 
         [request setHTTPMethod:@"POST"]; 
         [request setValue:idToken forHTTPHeaderField:@"X-FIREBASE-ID-TOKEN"]; 
         [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
         //[request setHTTPBody:postData]; 
         NSLog(@"%@",request); 

         NSURLSession *session = [NSURLSession sharedSession]; 
         NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { 
          NSLog(@"data dtat %@",data); 
          NSString *res = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
          NSLog(@"res %@",res); 
         }]; 
         [dataTask resume];