解决方案 »

  1.   

    request setresponstring:nsutf8string];
      

  2.   

    我在请求里加入你这这句代码后 返回值直接变成 null了
      

  3.   

    那你不用上面那句话吧。你试试把乱码的字符付给一个label呢,,看label能不能正常显示!
      

  4.   

    应该不是,我试过把url改成 appstore的,返回的json是正常的。
      

  5.   

    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
        NSURL *url=[NSURL URLWithString:@"***********"];
         versionRequest = [ASIFormDataRequest requestWithURL:url];
        [versionRequest setDelegate:self];
        [versionRequest setTimeOutSeconds:150];
        [versionRequest addRequestHeader:@"Content-Type" value:@"application/json"];
        [versionRequest startSynchronous];
        NSString  *jsonResponseString = [versionRequest responseString];
      

  6.   

    上面的代码出来的jsonResponse就乱码了。 奇怪的是,这个jsonResponse字符串内容竟然是所有HTML的内容。(标签啊什么的都有。)
      

  7.   

    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
        NSURL *url=[NSURL URLWithString:@"***********"];
         versionRequest = [ASIFormDataRequest requestWithURL:url];
        [versionRequest setDelegate:self];
        [versionRequest setTimeOutSeconds:150];
        [versionRequest addRequestHeader:@"Content-Type" value:@"application/json"];
        [versionRequest startSynchronous];
        NSString  *jsonResponseString = [versionRequest responseString];你这个地方如果不是必须要POST,而且没什么参数的话,你试下ASIHTTPRequest代替ASIFormDataRequest 
      

  8.   

    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
        NSURL *url=[NSURL URLWithString:@"***********"];
         versionRequest = [ASIFormDataRequest requestWithURL:url];
        [versionRequest setDelegate:self];
        [versionRequest setTimeOutSeconds:150];
        [versionRequest addRequestHeader:@"Content-Type" value:@"application/json"];
        [versionRequest startSynchronous];
        NSString  *jsonResponseString = [versionRequest responseString];你这个地方如果不是必须要POST,而且没什么参数的话,你试下ASIHTTPRequest代替ASIFormDataRequest 
    我试过了,情况有所好转,之前是 返回什么iis 405之类的乱码,改成asihttprequest后返回的内容只是 :
    {"version":"1.0.8","update":"更新内容","updateurl":"********","apptitle":"平阳电子移动办公系统"}
     还是很奇怪,最前面怎么还多余了几个字符。中文乱码还是没解决
      

  9.   

    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
        NSURL *url=[NSURL URLWithString:@"***********"];
         versionRequest = [ASIFormDataRequest requestWithURL:url];
        [versionRequest setDelegate:self];
        [versionRequest setTimeOutSeconds:150];
        [versionRequest addRequestHeader:@"Content-Type" value:@"application/json"];
        [versionRequest startSynchronous];
        NSString  *jsonResponseString = [versionRequest responseString];你这个地方如果不是必须要POST,而且没什么参数的话,你试下ASIHTTPRequest代替ASIFormDataRequest 被我解决了,谢谢你,对我帮助很大。
      

  10.   

    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
        NSURL *url=[NSURL URLWithString:@"***********"];
         versionRequest = [ASIFormDataRequest requestWithURL:url];
        [versionRequest setDelegate:self];
        [versionRequest setTimeOutSeconds:150];
        [versionRequest addRequestHeader:@"Content-Type" value:@"application/json"];
        [versionRequest startSynchronous];
        NSString  *jsonResponseString = [versionRequest responseString];你这个地方如果不是必须要POST,而且没什么参数的话,你试下ASIHTTPRequest代替ASIFormDataRequest 
    我试过了,情况有所好转,之前是 返回什么iis 405之类的乱码,改成asihttprequest后返回的内容只是 :
    {"version":"1.0.8","update":"更新内容","updateurl":"********","apptitle":"平阳电子移动办公系统"}
     还是很奇怪,最前面怎么还多余了几个字符。中文乱码还是没解决
    返回代码405是因为服务器不允许静态文件响应POST请求吧,所以你换了ASIHTTPRequest之后能正常获得数据。
    返回乱码这个编码问题,你先转成NSData试下,不一定有用。
        NSData *jsondata = [request responseData];
        
        NSString *jsonString = [[NSString alloc] initWithBytes:[jsondata bytes] length:[jsondata length] encoding:NSUTF8StringEncoding];
      

  11.   

    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
        NSURL *url=[NSURL URLWithString:@"***********"];
         versionRequest = [ASIFormDataRequest requestWithURL:url];
        [versionRequest setDelegate:self];
        [versionRequest setTimeOutSeconds:150];
        [versionRequest addRequestHeader:@"Content-Type" value:@"application/json"];
        [versionRequest startSynchronous];
        NSString  *jsonResponseString = [versionRequest responseString];你这个地方如果不是必须要POST,而且没什么参数的话,你试下ASIHTTPRequest代替ASIFormDataRequest 
    我试过了,情况有所好转,之前是 返回什么iis 405之类的乱码,改成asihttprequest后返回的内容只是 :
    {"version":"1.0.8","update":"更新内容","updateurl":"********","apptitle":"平阳电子移动办公系统"}
     还是很奇怪,最前面怎么还多余了几个字符。中文乱码还是没解决
    返回代码405是因为服务器不允许静态文件响应POST请求吧,所以你换了ASIHTTPRequest之后能正常获得数据。
    返回乱码这个编码问题,你先转成NSData试下,不一定有用。
        NSData *jsondata = [request responseData];
        
        NSString *jsonString = [[NSString alloc] initWithBytes:[jsondata bytes] length:[jsondata length] encoding:NSUTF8StringEncoding];asiformdatarequest 是asihttprequest的子类,asiformdatarequest是post请求,那asihttprequest是什么?
      

  12.   

    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
        NSURL *url=[NSURL URLWithString:@"***********"];
         versionRequest = [ASIFormDataRequest requestWithURL:url];
        [versionRequest setDelegate:self];
        [versionRequest setTimeOutSeconds:150];
        [versionRequest addRequestHeader:@"Content-Type" value:@"application/json"];
        [versionRequest startSynchronous];
        NSString  *jsonResponseString = [versionRequest responseString];你这个地方如果不是必须要POST,而且没什么参数的话,你试下ASIHTTPRequest代替ASIFormDataRequest 
    我试过了,情况有所好转,之前是 返回什么iis 405之类的乱码,改成asihttprequest后返回的内容只是 :
    {"version":"1.0.8","update":"更新内容","updateurl":"********","apptitle":"平阳电子移动办公系统"}
     还是很奇怪,最前面怎么还多余了几个字符。中文乱码还是没解决
    返回代码405是因为服务器不允许静态文件响应POST请求吧,所以你换了ASIHTTPRequest之后能正常获得数据。
    返回乱码这个编码问题,你先转成NSData试下,不一定有用。
        NSData *jsondata = [request responseData];
        
        NSString *jsonString = [[NSString alloc] initWithBytes:[jsondata bytes] length:[jsondata length] encoding:NSUTF8StringEncoding];asiformdatarequest 是asihttprequest的子类,asiformdatarequest是post请求,那asihttprequest是什么?

    是这样的,ASIFormDataRequest可以发送类似与HTML表单数据,也可以上传数据,默认采用POST请求方法,ASIHTTPRequest默认GET,这两段代码你可以分别在他们对应的.m文件找到 //在 ASIFormDataRequest.m里
    + (id)requestWithURL:(NSURL *)newURL
    {
    return [[[self alloc] initWithURL:newURL] autorelease];
    }- (id)initWithURL:(NSURL *)newURL
    {
    self = [super initWithURL:newURL];
    [self setPostFormat:ASIURLEncodedPostFormat];
    [self setStringEncoding:NSUTF8StringEncoding];
            [self setRequestMethod:@"POST"];
    return self;
    }//在ASIHTTPRequest.m里
    // HTTP method to use (eg: GET / POST / PUT / DELETE / HEAD etc). Defaults to GET
    NSString *requestMethod;,但是它们也可以其它的HTTP请求方法,都可以进行异步或同步请求。
    比如你之前的代码,使用ASIFormDataRequest,但是加上下面的设置GET请求,也是可以获取的,你可以试下,
     ASIFormDataRequest *request =....;
    [request setRequestMethod:@"GET"];
      

  13.   

     NSString *resultString = [[NSString alloc] initWithBytes:[jsondata bytes] length:[jsondata length] encoding:NSUTF8StringEncoding];
     格式化一下 就ok了
      

  14.   

    楼主,请问你怎么解决返回json字符串前面返回的乱码 我是是这样 ï»¿[{"Success":"YES"}],这个你是怎么解决的,求解,在线等。
      

  15.   

    NSString *resultString = [[[NSString alloc] initWithBytes:[[request responseData] bytes] length:[[request responseData] length] encoding:NSUTF8StringEncoding] autorelease];通过14楼的朋友方法,返回正常,可是这为什么呢,代码贴出了,给大家,大家指正:
     __block ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:URL];
        
        FLog(@"allKey=%@",[paramDic allKeys]);
        
        for (NSString *key in [paramDic allKeys]) {
            [request setPostValue:[[paramDic objectForKey:key] lowercaseString] forKey:key];
        }
        
        [request setCompletionBlock:^{
            //正确
            NSString *resultString = [[[NSString alloc] initWithBytes:[[request responseData] bytes] length:[[request responseData] length] encoding:NSUTF8StringEncoding] autorelease];
             [self.userDataDelegate addUserDataSuccess:[FJsonDataParserObject parseAddUserData:resultString]];
            NSLog(@"succ:%@",resultString); //返回 [{"Success":"YES"}]
         
            /*  下面返回 ï»¿[{"Success":"YES"}]
            NSString *response = [request responseString];
            NSLog(@"r=%@",response);
            [self.userDataDelegate addUserDataSuccess:[FJsonDataParserObject parseAddUserData:response]];
            */
            
        }];
    为什么会这样,坑爹的问题!