비밀번호로 보호 된 웹 서버에 일부 데이터를 게시하려면 NSMutableURLRequest
을 사용하고 있습니다. 나는 연결되어 있고 모든 것을 얻었고 데이터를 괜찮게 검색 할 수 있지만 어떤 이유로 나는 어떤 것도 게시 할 수 없다.NSMutableURLRequest를 사용하여 웹 서버에 데이터 게시
나는 사용자 이름과 암호로 NSURLCredentials
을 사용하고 있으며 연결에 문제가 없습니다.
시작 URL 요청 :
NSString *someString = @"Hello World";
NSData* theData=[someString dataUsingEncoding:NSUTF8StringEncoding];
NSURL *someUrl = [NSURL URLWithString:@"http://myurl/myfile.txt"];
가 웹 서버에 쓰기 :
NSString *postLength = [NSString stringWithFormat:@"%d", [theData length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:someUrl];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:theData];
어떤 HTTPS 인증서를 허용 :
를-(void)starting {
NSURL *url = [NSURL
URLWithString:@"http:myurl/myfile.txt"];
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url];
urlConnection = [[NSURLConnection alloc] initWithRequest:urlRequest delegate:self]; //Calling NSURLConnection delegate methods
}
내가 NSData
에 게시 할 NSString
변환 검색을위한
[NSURLRequest setAllowsAnyHTTPSCertificate:YES forHost:[someUrl host]];
보내기 요청 :
가NSError *error;
NSURLResponse *response;
NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString *data=[[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];
이 "안녕하세요"를 검색 데이터 = 0의 길이 ..
if ([data length] == 0) {
UIAlertView *dataLengthNoneAlert = [[UIAlertView alloc] initWithTitle:@"No data" message:@"There is no data on the server" delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil, nil];
[dataLengthNoneAlert show];
}
그렇지 않은 경우는, (.. 나에게 새로운 데이터를 말해 주는가해야하는)
else {
NSLog(data);
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Retrieved data" message:data delegate:nil cancelButtonTitle:@"Dimiss" otherButtonTitles:nil, nil];
[alert show];
}
그래서 웹 서버에 데이터를 게시하고 올바르게 검색하려고합니다. 후에. 나는 내가 방금 쓴 데이터의 길이가 0이라는 것을 알았다. 나는 심지어 애플리케이션 외부의 서버를 확인하고 아무런 변화가 없다. URL이 유효합니다. NSMutableURLRequest를 처음 사용하는 것입니다. 뭔가 빠졌습니까?
'NSURLConnection's' 방법 sendSynchronousRequest : returningResponse : error :'서버의 데이터 해석에 문제가 없습니다. 문제가 게시됩니다. – Imirak
'NSData * theData = [NSData dataWithBytes : [someString UTF8String] length : [someString length]];'시도해보십시오. 및 'NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL : someURL]; –
그 요청은 (나는 질문에 포함되지 않은) 인증 시작에 포함되었으며, NSData * theData = [NSData dataWithBytes : [someString UTF8String] length : [someString length]];는 아무 것도 변경하지 않았습니다. 하지만 인코딩 유형과 관련이 있습니다. – Imirak