为什么我的JSON帖子请求最终为十六进制值?

时间:2015-02-24 11:57:55

标签: ios json post

我正在尝试从我的iOS应用发帖。我试图传递的JSON称为finalConvertedJson,当我在日志上打印它时,它看起来像一个好的JSON对象。

但是当我使用下面的代码发布它时,Web服务会将代码作为十六进制值接收,并且不知道如何处理它。当我在Postman中尝试相同的JSON对象和URL时,它可以很好地工作。

self.finalStringJson = [[NSString alloc] initWithData:self.finalConvertedJson encoding:NSUTF8StringEncoding];
NSLog(@"this this: %@", self.finalStringJson);

    NSData* responseData = nil;
    NSString *urlString = @"http://10.2.176.100:9000/TestIOS?mobileData";
    NSURL *url=[NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
    responseData = [NSMutableData data] ;
    NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:url];
    NSString *bodydata=[NSString stringWithFormat:@"%@",self.finalConvertedJson];

    [request setHTTPMethod:@"POST"];
    NSData *req=[NSData dataWithBytes:[bodydata UTF8String] length:[bodydata length]];
    [request setHTTPBody:req];
    NSURLResponse* response;
    NSError* error = nil;
    responseData = [NSURLConnection sendSynchronousRequest:request     returningResponse:&response error:&error];
    NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];

    NSLog(@"the final output is:%@",responseString);

我猜我的iOS代码中存在某种编码问题。

我是iOS的新手,所以我可能会在这里找不到简单的东西。

1 个答案:

答案 0 :(得分:0)

我认为这个问题就在这条线上......

NSString *bodydata = [NSString stringWithFormat:@"%@",self.finalConvertedJson];

您使用的是self.finalConvertedJson,但我认为您打算使用self.finalStringJson。如果是这样,你可以这样做......

NSString *bodydata = self.finalStringJson;