您好我正在尝试NSURLConnection中的Http PUT方法。 我将数据文件发布到亚马逊s3路径。
-(void)postFaceVideo{
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://face_video.s3.amazonaws.com/chunks/?AWSAccessKeyId=MYKEY&Expires=1424373411&Signature=MYSIGNATURE"]];
[request setHTTPMethod:@"PUT"];
[request setHTTPBody:appDelegate.faceData]; // This is the saved NSData
[request setTimeoutInterval:200];
conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];
if (conn) {
webData = [NSMutableData data];
}
}
在它工作正常之前,但现在服务器中都没有发布任何数据,也没有任何响应。可能是什么原因?
Xcode 6中的这些方法是否有任何变化,因为之前我在使用Xcode 5时工作正常。
我也尝试过如下NSURLSession。
-(void)postFaceVideo2{
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://face_video.s3.amazonaws.com/chunks/?AWSAccessKeyId=MYKEY&Expires=1424373411&Signature=MYSIGNATURE"]];
[request setValue:[NSString stringWithFormat:@"%d",appDelegate.faceData.length] forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded;charset=UTF-8" forHTTPHeaderField:@"Content-Type"];
request.HTTPMethod = @"PUT";
request.HTTPBody = appDelegate.faceData;
NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData *data,NSURLResponse *response, NSError *error)
{
if (!error)
{
NSLog(@"Status code: %i", ((NSHTTPURLResponse *)response).statusCode);
NSString *jsonString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] ;
}
else
{
NSLog(@"Error: %@", error.localizedDescription);
NSLog(@"Error: %@", error.description);
}
}];
[task resume];
}
我在这里收到错误 -
Error: Error Domain=NSURLErrorDomain Code=-1001 "The operation couldn’t be completed. (NSURLErrorDomain error -1001.)" UserInfo=0x171cadb0 {NSErrorFailingURLKey=https://video_test.s3.amazonaws.com/chunks_dev/21662/facescan_1?Signature= MYSIGN =&Expires=1424381789&AWSAccessKeyId=MYID, NSErrorFailingURLStringKey=https://video_test.s3.amazonaws.com/chunks_dev/21662/facescan_1?Signature=MYSIGN=&Expires=1424381789&AWSAccessKeyId=MYID, NSUnderlyingError=0x171b30c0 "The operation couldn’t be completed. (kCFErrorDomainCFNetwork error -1001.)"}