我尝试从iPhone上同步或上传远程服务器上的数据,但没有得到它。我从1周开始尝试,但没有成功。
如何解决这个问题。我正在使用 NSURLConnection 方法或任何一个给出想法
ASIHTTPRequest方法但我是 ASIHTTPRequest 的新手。我只需要这个代码用于此代码:
- (void)sendRequestforContent
{
//this for finding the date of sync on the server
NSDate* date = [NSDate date];
//Create the dateformatter object
NSDateFormatter* formatter = [[[NSDateFormatter alloc] init] autorelease];
//Set the required date format
[formatter setDateFormat:@"dd-MMM-yyyy"];
//Get the string date
NSString* str = [formatter stringFromDate:date];
NSError *error = nil;
NSHTTPURLResponse *response = nil;
NSMutableData *postBody = [NSMutableData data];
NSURL *url = [NSURL URLWithString:@"http://www.google.com"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
NSString *boundary = @"-------------------a9d8vyb89089dy70";
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary];
[request setHTTPMethod:@"POST"];
[request setValue:contentType forHTTPHeaderField:@"Content-Type"];
[postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
//this is for TOKEN_API
[postBody appendData:[@"Content-disposition: form-data; name=\"Token\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[tokenapi dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
//this for the CONTENT_ID
[postBody appendData:[@"Content-disposition: form-data; name=\"contentID\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[content_id dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
//this for the CONTENTTYPE_ID
[postBody appendData:[@"Content-disposition: form-data; name=\"contentTypeID\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
NSString *ContentTypeString = [NSString stringWithFormat:@"%d",content_type];
[postBody appendData:[ContentTypeString dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
//this for the CONTENT_Location_Id
[postBody appendData:[@"Content-disposition: form-data; name=\"contentLocationID\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[contenLocation_id dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
//this is for the User_Caption
[postBody appendData:[@"Content-disposition: form-data; name=\"userCaption\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[user_caption dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
//this is for the User_Comment
[postBody appendData:[@"Content-disposition: form-data; name=\"userComment\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[user_comment dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
//this for the Tags
[postBody appendData:[@"Content-disposition: form-data; name=\"tags\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[tag dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
//this for the Date_Record
[postBody appendData:[@"Content-disposition: form-data; name=\"dateRecorded\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[date_recorded dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
//this for the image_data
[postBody appendData:[[NSString stringWithFormat:@"Content-disposition: form-data; name=\"image_file\"; filename=\"%@\"\r\n",@"image.jpg"] dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[@"Content-Type: image/jpg\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:image];
[postBody appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
//this for the Share_type
[postBody appendData:[@"Content-disposition: form-data; name=\"shareType\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
NSString *ShareString = [NSString stringWithFormat:@"%d",share_type];
[postBody appendData:[ShareString dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
//this for the Views
[postBody appendData:[@"Content-disposition: form-data; name=\"views\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
NSString *ViewsString = [NSString stringWithFormat:@"%d",views];
[postBody appendData:[ViewsString dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
//this for the PLAY_time
[postBody appendData:[@"Content-disposition: form-data; name=\"playTime\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
NSString *TimeString = [NSString stringWithFormat:@"%d",play_time];
[postBody appendData:[TimeString dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
//this for the Posted_By
[postBody appendData:[@"Content-disposition: form-data; name=\"postedBy\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[postred_by dataUsingEncoding:NSUTF8StringEncoding]];
//this for the AVG_Rating
[postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[@"Content-disposition: form-data; name=\"avgRating\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
NSString *AvgString = [NSString stringWithFormat:@"%d",avg_rating];
[postBody appendData:[AvgString dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[@"Content-disposition: form-data; name=\"LastSyncDate\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[str dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:postBody];
NSData *shoutData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString *returnString = [[NSString alloc] initWithData:shoutData encoding:NSUTF8StringEncoding];
NSLog(@"%@", returnString);
}
这不是这个方法
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
loginStatus = [[NSString alloc] initWithBytes: [webData mutableBytes] length:[webData length] encoding:NSUTF8StringEncoding];
NSLog(@"%@", loginStatus);
}
它在控制台上显示HTML页面。
答案 0 :(得分:4)
NSString *urlString = [[NSString alloc] initWithString:@"http://192.168.0.1:96/JourneyMapperAPI?RequestType=Content&Command=New"];
NSURL *url = [[NSURL alloc] initWithString:urlString];
NSMutableData *postBody;//Here comes your data that you have created in the question
NSString *msgLength = [[NSString alloc] initWithFormat:@"%d", [postBody length]];//use either [postBody length] or [postBody bytes], I am not sure about it
ASIFormDataRequest *serverRequest = [ASIFormDataRequest requestWithURL:url];
[serverRequest addRequestHeader:@"Content-Type" value:@"text/xml; charset=utf-8"];
[serverRequest addRequestHeader:@"Content-Length" value:msgLength];
[serverRequest appendPostData:postBody];
[serverRequest setDelegate:self];
[serverRequest setDidFinishSelector:@selector(sendAlertsRequestDone:)];
[serverRequest setDidFailSelector:@selector(sendAlertsRequestWentWrong:)];
[serverRequest setUploadProgressDelegate:progressView];// here progressView is UIProgressbar
[serverRequest startAsynchronous];
[urlString release];
[url release];
[postBody release];
[msgLength release];