2017-03-05 11 views
0

나는있는 NSData 객체 밖으로있는 NSString했습니다에 내용 - 처리 양식 데이터를 저장할 수있는 방법 :나는있는 NSString

NSData* data = request.HTTPBody; 
    NSString* s = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 

지금 내가 가지고있는 나에게 다음과 같은 NSLog을 준있는 NSString :

WebKitFormBoundaryA7rpc3udSxxsvBFm 

Content-Disposition: form-data; name="username" 

Testusernamevalue 

------WebKitFormBoundaryA7rpc3udSxxsvBFm 

Content-Disposition: form-data; name="password" 

Testpasswordvalue 

------WebKitFormBoundaryA7rpc3udSxxsvBFm-- 

어떻게 username과 passwort를위한 단일 NSString에 "username"과 "password"의 두 값을 저장할 수 있습니까?

도움 주셔서 감사합니다. 감사합니다. Eddi

+0

:

NSArray *components = [theLongContentDispositionString componentsSeparatedByString:@"\n"]; NSMutableDictionary *values = [NSMutableDictionary dictionary]; NSString *key = nil; for (NSString *line in components) { if (key && line.length) { values[key] = line; key = nil; } else if ([line hasPrefix:@"Content-Disposition"]) { // does the line contain "username"? Assume password if not NSRange r = [line rangeOfString:@"username"]; key = (r.location == NSNotFound)? @"password" : @"username"; } } 

값 사전처럼 보이는 끝낼 것을 위해, 우리는 단락 문자 라인과 유형 (사용자 이름 또는 암호)를 찾는 것에 대해 상태를 유지하면서 라인을 통해 걸어해야합니다 이해하기 위해서, 당신은 개행 문자를 포함하는 긴 문자열을 가지고 있는데, 그 안에 name = "*"로 구분 된 두 개의 문자열을 찾고 싶습니까? 이름이 무엇이고 암호가 무엇인지 어떻게 알 수 있습니까? – danh

+0

아니요 PHP 폼의 특수 문자에 문제가 있습니다. 그래서 양식을 enctype = "multipart/form-data"로 변경했습니다. 그럼 나는 name = "username"과 name = "password"뒤에 폼의 값을 얻었다. 값 "Testusernamevalue"및 "Testpasswordvalue"가있는 두 개의 NSString이 필요합니다 (예 : 첫 번째 게시물에서) – Eddi

답변

0

"Content-Disposition"줄에 나오는 줄에 문자열 값을 넣으려는 것이 아닐까합니다.

{ 
    password = "non-empty line after Content-Disposition line with password"; 
    username = "non-empty line after Content-Disposition line with username"; 
} 
+0

답변 해 주셔서 감사합니다. 그것은 나를 더욱 도울 수 있습니다. – Eddi

+0

@ Eddi - 확실합니다. 이는 일반적으로 정답을 표시함으로써 표현됩니다. – danh