1.推薦使用AFN的框架提交最簡單,網(wǎng)上很多例子這就不說了
2.只提交數(shù)據(jù),沒實現(xiàn)提交圖片
3.說明: 寫入的文字數(shù)據(jù):一條表單分割符(--BOUNDARY) + "key" + "value" + 一條表單分隔符;
-(void)uploadDataWithUrl2:(NSString *)url{
NSString *urlStr = [NSString stringWithFormat:@"%@%@",APIURL,url];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlStr]];
[request setHTTPMethod:@"POST"];
[request setTimeoutInterval:100];
NSError *error;
NSDictionary *locationDict = @{@"address":self.LastAddress,@"latitude":self.latitude,@"longitude":self.longitude,@"loctype":@"GPS定位"};
NSData *requestData = [NSJSONSerialization dataWithJSONObject:locationDict options:NSJSONWritingPrettyPrinted error:&error];
NSString *data = [[NSString alloc]initWithData:requestData encoding:NSUTF8StringEncoding];
NSMutableData *body = [NSMutableData data];
//分隔 開始
[body appendData:[self getDataWithString:@"--BOUNDARY\r\n" ]];
//第一個參數(shù)
NSString *dispositions_data = [NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n",@"locationdata"];
[body appendData:[self getDataWithString:dispositions_data]];
[body appendData:[self getDataWithString:@"\r\n"]];
[body appendData:[self getDataWithString:data]];
[body appendData:[self getDataWithString:@"\r\n"]];
//分隔
[body appendData:[self getDataWithString:@"--BOUNDARY\r\n" ]];
//第二個參數(shù)
NSString *dispositions_clientid = [NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n",@"clientid"];
[body appendData:[self getDataWithString:dispositions_clientid]];
[body appendData:[self getDataWithString:@"\r\n"]];
[body appendData:[self getDataWithString:self.recommendCode]];
[body appendData:[self getDataWithString:@"\r\n"]];
//分隔
[body appendData:[self getDataWithString:@"--BOUNDARY\r\n" ]];
//第三個參數(shù)
NSString *deviceID = [[NSUserDefaults standardUserDefaults] objectForKey:@"deviceID"];
NSString *dispositions_mac = [NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n",@"mac"];
[body appendData:[self getDataWithString:dispositions_mac]];
[body appendData:[self getDataWithString:@"\r\n"]];
[body appendData:[self getDataWithString:deviceID]];
[body appendData:[self getDataWithString:@"\r\n"]];
//分隔結(jié)束
[body appendData:[self getDataWithString:@"--BOUNDARY\r\n" ]];
request.HTTPBody = body;
[request setValue:[NSString stringWithFormat:@"%lu",(unsigned long)body.length] forHTTPHeaderField:@"Content-Length"];
[request setValue:@"multipart/form-data; boundary=BOUNDARY" forHTTPHeaderField:@"Content-Type"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
if (error) {
return ;
}
NSString *result = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"result=%@",result);
}];
[dataTask resume];
}
-(NSData *)getDataWithString:(NSString *)string{
NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
return data;
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者