2012-04-21 62 views
2

请任何一个知道abhout如何发送请求,并在ASIHTTP发送文件的一些参数,我的代码是波纹管我不能够将文件发送ASIHTTP请求

NSURL *audiourl = [NSURL URLWithString:@"http://dev.kuwait.tt/demo_radioapps/radio_mobile/adduserrequest.php?program_id=3&user_name=abhishek&[email protected]&audiofile=review.caf&mode=AddRequest"]; 
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:audiourl]; 
[request addData:tempData withFileName:@"review.caf" andContentType:@"audio/caf" forKey:@"audiofile"]; 

[request setRequestMethod:@"POST"]; 

[request setDelegate:self]; 

[request startSynchronous]; 
+1

这是不好的形式发送请求同步。您应该异步发送它以防止UI被锁定。 – jmstone617 2012-04-21 16:31:52

回答

0

你尝试过:[request setData:tempData withFileName:@"review.caf" andContentType:@"audio/caf" forKey:@"audiofile"];

//一个NSData对象的内容添加到该请求,并可以指定内容类型和文件名

- (void)addData:(id)data withFileName:(NSString *)fileName andContentType:(NSString *)contentType forKey:(NSString *)key 

//添加一个NSData对象的内容请求,CLE aring任何其他有同样键 ,你可以指定内容类型和文件名

- (void)setData:(id)data withFileName:(NSString *)fileName andContentType:(NSString *)contentType forKey:(NSString *)key; 

也许你可以用

if ([request responseStatusCode] == 200) { 
      NSLog (@"Response status code: %i", [request responseStatusCode]); } 
0

下面验证请求的成功是一个工作的功能,我在我的应用程序中使用,请检查是否有帮助:

- (void)uploadAudioFile:(NSString *)audioPath{ 
     NSURL *audiourl=[NSURL URLWithString:audioPath]; 
    NSData *audioData=[NSData dataWithContentsOfFile:audiourl.path]; 
      @try { 
     NSString *strURL = @"http://www.abc.com/data/default.aspx"; 
     ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:strURL]]; 
     request= [request initWithURL:[NSURL URLWithString:strURL]]; 
     [request setShouldContinueWhenAppEntersBackground:YES]; 
     [request setShouldAttemptPersistentConnection:YES]; 
     [request setPostValue:[Settings UserName] forKey:@"lblUsername"]; 
     [request setPostValue:[Settings Password] forKey:@"lblpassword"]; 
     [request addData:audioData withFileName:@"audio.caf" andContentType:@"audio/x-caf" forKey:@"filMyFile"]; 

     [request setCompletionBlock:^{ 
      NSLog(@"Request Completed");    
      [self requestFinished:request]; 
     }]; 

     //if request failed 
     [request setFailedBlock:^{ 
      [self requestFailed:request]; 
      NSLog(@"request Failed: %@",[request error]); 
     }]; 
     [request startAsynchronous]; 
    } 
    @catch (NSException *exception) { 
     NSLog(@"Exception name and reson is %@ ------- %@",exception.name, exception.reason); 
    } 
    @finally { 
     NSLog(@"finalyy of upload audio"); 
    } 
} 


- (void)requestFinished:(ASIHTTPRequest *)request {  
    NSLog(@"requestFinished"); 

} 

- (void)requestFailed:(ASIHTTPRequest *)request { 
     NSLog(@"requestFailed"); 

}