使用sendSynchronousRequest时在ios中获取http响应代码

亚当·奈特斯

我的HTTP GET正常工作,没有使用任何第三方功能,我是iOS的新手,因此一开始就很难进行设置。我的代码如下所示:

-(NSString *) SendGetRequestToRest:(NSString *)urlEndString
{

NSString *userName = @"userN";
NSString *password = @"PassW";

NSString *urlBaseString = @"http://someurl.co.uk/";

NSString *urlString = [NSString stringWithFormat:@"%@%@", urlBaseString, urlEndString];

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];

[request setURL:[NSURL URLWithString:urlString]];

[request setHTTPMethod:@"GET"];

NSString *str1 = [NSString stringWithFormat:@"%@:%@", userName, password];
NSString *encodedString = [self stringByBase64EncodingWithString:str1];
[request addValue:[NSString stringWithFormat:@"Basic %@",encodedString] forHTTPHeaderField:@"Authorization"];

NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

NSString *str = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog(@"str: %@", str);

return str;

}

我需要做的是跟踪http GET的状态代码不是一个很好的200,我看到了如何在iOS中检查Web服务器的状态?这看起来很有希望,即添加以下内容:

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSHTTPURLResponse *)response
{
    if ([response statusCode] == 404)
    {
    /// do some stuff
    }
}

但我看不到如何连接到

NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

因为它不接受代表?

弗拉基米尔(Vladimir)

您可以使用returningResponse参数来获得“响应”:

NSHTTPURLResponse *response = nil;
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
if ([response statusCode] == 404)
{
   // Do whatever you want to do after getting response
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Selenium WebDriver获取HTTP响应代码

当Java中的请求失败时,如何获取http响应正文?

从SOAP响应中获取HTTP状态代码

使用ResponseEntity获取Http响应

使用curl获取PHP中的HTTP代码

使用AsyncTask时应如何处理HTTP响应代码?

使用jQuery从ajax响应获取Http状态代码

消耗休息时在BizTalk中获取HTTP错误代码

获取响应代码:非HTTP响应代码:Jmeter中某些示例的java.net.ConnectException

Objective-C-不推荐使用“ sendSynchronousRequest:returningResponse:error:”:iOS 9.0中首次不推荐使用

Retrofit / RxJava-获取http响应代码

Angular无法注册ServiceWorker:获取脚本时收到错误的HTTP响应代码(404)

我收到错误消息:无法注册ServiceWorker:获取脚本时收到错误的HTTP响应代码(404)

如何在Django中获取带有URL的http响应代码?

使用curl时,从标题获取HTTP响应状态代码时出现问题

Angular 7无法注册ServiceWorker:获取脚本时收到错误的HTTP响应代码(404)

使用Angular HttpClient时如何获取错误响应的HTTP状态?

付款失败时使用什么HTTP代码响应?

使用Reactor Netty HTTP Client时如何获取HTTP响应正文和状态

Alamofire + Combine:获取HTTP响应状态代码

从网址获取http响应代码

如何在Unity中为Android / IOS进行请求并获取HTTP响应代码

使用Http-request在单个请求中获取响应代码和响应正文

从Python 3.X中的HTTP响应中获取并评估Python代码

在iOS中发布html数据时,如何获取有关http post方法的响应?

如何在soap客户端中获取Http响应代码?

当请求时间过长时使用哪个 HTTP 响应代码?

如何使用 JSTL 获取 http 响应状态代码?

如何使用 VBA 代码从 HTTP 响应获取值到 Excel