2015-10-20 72 views
-1

嗨,我是新的ios开发我想发送一些json数据在我的web服务通过http post请求数据将在请求正文不在参数?如何在http post body上发布json字符串?在obj c

任何帮助是赞赏,谢谢。

+1

[通过POST中的NSURLRequest发送JSON]的可能的复制(http://stackoverflow.com/questions/7404559/sending-a-json-via-post -in-的NSURLRequest) –

回答

0

尝试此代码

NSURL *url = [NSURL URLWithString:@"Your Json URL"]; 

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url 
                    cachePolicy:NSURLRequestUseProtocolCachePolicy 
                   timeoutInterval:60.0]; 
      [request setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 
      [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 

      [request setHTTPMethod:@"POST"]; 

      NSURLResponse *response; 
      NSError *err; 
      NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err]; 
      NSString *str = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; 
      NSLog(@"responseData in string : %@",str); 

      NSMutableDictionary *dictTemp = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:nil]; 

NSLog(@"responseData in Dictionary : %@",dictTemp); 
0
> Try this code 

    -(void)answerCode 
{ 
    NSError * error ; 
    NSURLResponse * urlResponse; 

    NSURL * postUrl =[NSURL URLWithString:YourUrl];//enter your url 

//your body here 
NSString * body =[NSString stringWithFormat:@"email=dharasis"]; 



    NSMutableURLRequest * request =[[NSMutableURLRequest alloc]initWithURL:postUrl cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:50]; 
    [request setHTTPMethod:@"POST"]; 
    [request setHTTPBody:[body dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]]; 

    NSData * data =[NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error]; 
    if (!data) { 

     return; 
    } 

    id json =[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error]; 

    NSLog(@"Json result is:%@",josn); 

}