美文网首页
AFNetWorking在车行项目中传轨迹坐标通过POST请求

AFNetWorking在车行项目中传轨迹坐标通过POST请求

作者: iOS乐乐 | 来源:发表于2018-02-05 16:03 被阅读0次
for (int a=0; a<tempArray.count; a++)
        {
            ZYPoint*point=tempArray[a];
            if (![currentTime isEqualToString:point.time])
            {
                NSMutableDictionary*tempDic=[[NSMutableDictionary alloc]initWithCapacity:0];
                [tempDic setObject:point.ID forKey:@"id"];
                NSString*latitudeStr=[NSString stringWithFormat:@"%f",point.latitude];
                NSString*longitudeStr=[NSString stringWithFormat:@"%f",point.longitude];
                [tempDic setObject:latitudeStr forKey:@"latitude"];
                [tempDic setObject:longitudeStr forKey:@"longitude"];
                [tempDic setObject:point.uploadTime forKey:@"time"];
                [_togetherArr addObject:tempDic];
                [dic setObject:point.phone forKey:@"phone"];
                [dic setObject:_togetherArr forKey:@"data"];
                _data=[NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:nil];
                //      生成json串
                NSString*jsonString=[[NSString alloc]initWithData:_data encoding:NSUTF8StringEncoding];
                
                
//      将网址进行编码才可以进行请求,否则会crash
          NSString *_url = [_strUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];      
            }
        }
        
#pragma mark 上传轨迹到服务器
        if (_data)
        {
            //上传
            AFHTTPRequestOperationManager *requestManager = [AFHTTPRequestOperationManager manager];
            requestManager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/html", nil];
            NSString*urlStr=[NSString stringWithFormat:@"%@index.php/home/api/logtrace.html",XRZUrlString];
            
            [requestManager POST:urlStr parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData)
            {
//请求的URL是有长度的限制的,所以将轨迹的json串,通过AFNetWorking POST请求的形式来进行发送;
                //这里是json串的二进制,后面必须对应的是服务器上面对应的字段,否则传不上去
                [formData appendPartWithFormData:_data name:@"data"];
                
            } success:^(AFHTTPRequestOperation *operation, id responseObject)
            {
                if (responseObject)
                {
                    //等数据加载完成之后,去主界面更改风火轮的状态
                    [[NSNotificationCenter defaultCenter] postNotificationName:@"isHiddenHUD" object:nil userInfo:nil];
                    NSLog(@"上传状态--%@",responseObject[@"message"]);
                    [IanAlert alertSuccess:responseObject[@"message"] length:2];
                    
                }
                
            } failure:^(AFHTTPRequestOperation *operation, NSError *error)
            {
                //等数据加载完成之后,去主界面更改风火轮的状态
                [[NSNotificationCenter defaultCenter] postNotificationName:@"isHiddenHUD" object:nil userInfo:nil];
                [IanAlert alertError:[NSString stringWithFormat:@"%@",error] length:2];
                NSLog(@"error--%@",error);
                
            }];
     
        }
        
    }

相关文章

网友评论

      本文标题:AFNetWorking在车行项目中传轨迹坐标通过POST请求

      本文链接:https://www.haomeiwen.com/subject/qlhizxtx.html