iphone-授权后请愿书
我正在尝试对iphone中的webservice进行用户授权。等效的ant test java版本是以下代码:iphone-授权后请愿书,iphone,post,http-authentication,Iphone,Post,Http Authentication,我正在尝试对iphone中的webservice进行用户授权。等效的ant test java版本是以下代码: HttpPost post = new HttpPost("http://webserviceurl/authuser"); // Header Basic base64 user:pass post.setHeader("Authorization", "Basic " + Base64.encodeBase64String(StringUtils.getBy
HttpPost post = new HttpPost("http://webserviceurl/authuser");
// Header Basic base64 user:pass
post.setHeader("Authorization", "Basic " + Base64.encodeBase64String(StringUtils.getBytesUtf8("myuser:mypassword")));
// FIELD
List<NameValuePair> urlParameters = new ArrayList<NameValuePair>();
urlParameters.add(new BasicNameValuePair("usuario", "doxsi@doxsi.com"));
urlParameters.add(new BasicNameValuePair("password", "pass"));
post.setEntity(new UrlEncodedFormEntity(urlParameters));
“encode”和“base64StringFromData”是外部类Base64的方法(如下所示)
我的代码对吗?
如何获取服务器响应?
我如何实现java“字段”
非常感谢您的建议。提前发送我刚刚解决了问题,如果有人需要,我想发布它 我的代码是:
-(IBAction)buttonEntra:(id)sender{
NSLog(@"starting autorization");
NSString *urlString = @"http://sytes.net:8080/rest/checkuser";
NSURL *url = [NSURL URLWithString:urlString];
NSString *serverName = @"serverUSER";
NSString *serverPassword = @"serverPASS";
// create a plaintext string in the format username:password
NSString *authStr = [NSString stringWithFormat:@"%@:%@", serverName, serverPassword];
NSData *authData = [authStr dataUsingEncoding:NSUTF8StringEncoding];
NSString *authValue = [NSString stringWithFormat:@"Basic %@", [Base64 encode:authData ]];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: url
cachePolicy: NSURLRequestUseProtocolCachePolicy
timeoutInterval: 10];
[request setHTTPMethod:@"POST"];
[request setValue:authValue forHTTPHeaderField:@"Authorization"];
//parametros en el body
NSString *userName = usuario;
NSString *userPassword = password;
//esempio doxsi9@hotmail.com - sicignano
NSString *post = [NSString stringWithFormat: @"usuario=%@&password=%@",userName,userPassword];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
[request setHTTPBody:postData];
// perform the reqeust
NSURLResponse *response;
NSError *myError = nil;
NSData *data = [NSURLConnection
sendSynchronousRequest: request
returningResponse: &response
error: &myError];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[connection start];
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
//status code 200 OK - status code 405 no method defined
NSLog(@" connection didReceiveResponse: %@", response);
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)d {
NSString *string = [[NSString alloc] initWithData:d encoding:NSUTF8StringEncoding];
NSLog(@"connection didReceiveData: %@",string);
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
NSLog(@"didFailWithError: %@ ", [error localizedDescription]);
[[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Servicio no disponible", @"")
message:@"El servidor podria encontrarse en mantenimiento"
delegate:nil
cancelButtonTitle:NSLocalizedString(@"OK", @"")
otherButtonTitles:nil] show];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
// Do anything you want with it
NSLog(@"connectionDidFinishLoading ");
}
我希望有帮助
-(IBAction)buttonEntra:(id)sender{
NSLog(@"starting autorization");
NSString *urlString = @"http://sytes.net:8080/rest/checkuser";
NSURL *url = [NSURL URLWithString:urlString];
NSString *serverName = @"serverUSER";
NSString *serverPassword = @"serverPASS";
// create a plaintext string in the format username:password
NSString *authStr = [NSString stringWithFormat:@"%@:%@", serverName, serverPassword];
NSData *authData = [authStr dataUsingEncoding:NSUTF8StringEncoding];
NSString *authValue = [NSString stringWithFormat:@"Basic %@", [Base64 encode:authData ]];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: url
cachePolicy: NSURLRequestUseProtocolCachePolicy
timeoutInterval: 10];
[request setHTTPMethod:@"POST"];
[request setValue:authValue forHTTPHeaderField:@"Authorization"];
//parametros en el body
NSString *userName = usuario;
NSString *userPassword = password;
//esempio doxsi9@hotmail.com - sicignano
NSString *post = [NSString stringWithFormat: @"usuario=%@&password=%@",userName,userPassword];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
[request setHTTPBody:postData];
// perform the reqeust
NSURLResponse *response;
NSError *myError = nil;
NSData *data = [NSURLConnection
sendSynchronousRequest: request
returningResponse: &response
error: &myError];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[connection start];
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
//status code 200 OK - status code 405 no method defined
NSLog(@" connection didReceiveResponse: %@", response);
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)d {
NSString *string = [[NSString alloc] initWithData:d encoding:NSUTF8StringEncoding];
NSLog(@"connection didReceiveData: %@",string);
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
NSLog(@"didFailWithError: %@ ", [error localizedDescription]);
[[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Servicio no disponible", @"")
message:@"El servidor podria encontrarse en mantenimiento"
delegate:nil
cancelButtonTitle:NSLocalizedString(@"OK", @"")
otherButtonTitles:nil] show];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
// Do anything you want with it
NSLog(@"connectionDidFinishLoading ");
}