2014-09-26 1 views
0

SOAP API를 사용하여 NSMutableURLRequest를 사용하여 서버에 매개 변수를 업로드하고 있는데 문제가 없습니다.iOS - SOAP을 사용하여 첨부 파일을 보내려면 어떻게해야하나요?

static NSString *URLString = @"http://www.myURL"; 
NSMutableURLRequest *request = 
[NSMutableURLRequest requestWithURL:[NSURL URLString]]; 

[request addValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; 
[request setHTTPMethod:@"POST"]; 
[request addValue:@"http://..." forHTTPHeaderField:@"SOAPAction"]; 

NSString *name = @"John"; 

NSString *parameters = [NSString stringWithFormat: 
         @"<s:Envelope xmlns:s=\"http://..../\">\n" 
         "<s:Body >\n" 
         "<name>%@</name>\n" 
         "</s:Body>\n" 
         "</s:Envelope>\n", name]; 
[request setHTTPBody:[parameters dataUsingEncoding:NSUTF8StringEncoding]]; 

_myConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 

이제 매개 변수와 함께 텍스트 파일 (첨부 파일)을 보내려고합니다.

누군가 도움을 줄 수 있습니까?

답변

1

안녕 당신은 BASE64 문자열에 다음 NSDATA로 파일을 변환하고 요청 본문에 매개 변수로 추가하고 그 후 백엔드에서 당신은 Binary DataBASE64 문자열을 변환 할 수있는 텍스트 파일로 저장할 수 있습니다.

인코딩 여기

NSString *str=[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"file.txt"]; 
NSData *data = [NSData dataWithContentsOfFile:str]; 
NSString *base64String = [data base64EncodedStringWithOptions:0]; 
NSLog(@"%@", base64String); 

그냥 내가 서버 측에 액세스 할 수없는 또 하나의 매개 변수를

NSString *parameters = [NSString stringWithFormat: 
        @"<s:Envelope xmlns:s=\"http://..../\">\n" 
        "<s:Body >\n" 
        "<name>%@</name>\n" 
        "<fileData>%@</fileData>\n" //Here is new parameter 
        "</GetChanges>\n" 
        "</s:Body>\n" 
        "</s:Envelope>\n", name, base64String]; 
+0

를 추가 BASE64 Conversion classes

에 대한 링크입니다. 다음 매개 변수로 파일 정보를 보내야합니다 : cid : note.txt 그리고 데이터를 호출과 함께 보내십시오 .... 내가 알아낼 수없는 것은 어떻게 보내겠습니까? 이 호출과 파일 데이터 ?? –

+0

텍스트 파일의 텍스트를 보내야하는 것처럼 보입니다. 그렇지? – abhishekkharwar

+0

아니요 첨부 파일로 파일을 보내야합니다. –