标签: asihttprequest

检测到不正确的NSStringEncoding值0x0000(使用ASIHTTPRequest)

我在我的应用程序中使用ASIHTTPRequst并且遇到了一些问题,但仅限于某些设备.在某些情况下,我收到以下错误:

"检测到不正确的NSStringEncoding值0x0000.假设NSASCIIStringEncoding.将在不久的将来停止这种兼容性映射行为"

我得到了有限的测试选项,因为它适用于我的所有内部测试设备,但问题仍然发生在我的一个或多个客户端测试手机上.这也可能是手机连接到蜂窝网络的情况,因为它似乎正在使用wifi.

有谁知道可能导致问题的原因是什么?我看到有类似的问题类型,但我的代码看起来是正确的,从其他问题答案和ASIHTTPRequest网站.

编辑 发生错误时,不会收到服务器的响应,因此用户卡在注册/登录状态.

urlEncodeValue:

- (NSString *)urlEncodeValue:(NSString *)str
{
    NSString *result = (NSString *) CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)str, NULL, CFSTR(":/?#[]@!$&’()*+,;="), kCFStringEncodingUTF8);
    return [result autorelease];
}
Run Code Online (Sandbox Code Playgroud)

ASIHTTPRequest代码段:

    NSString *encodedUrlAdress = [NSString stringWithFormat:@"%@user/register/%@/%@/%@/%d/%@/%@/%@/%@", 
                                   kUserServerAddress, 
                                   [self urlEncodeValue:_firstName], 
                                   [self urlEncodeValue:_lastName], 
                                   [self urlEncodeValue:_phoneNumber], 
                                   _sex, 
                                   [self urlEncodeValue:_birthDate], 
                                   [self urlEncodeValue:_address], 
                                   [self urlEncodeValue:_postalNumber]];    
    NSLog(@"encodedUrlAdress: %@", encodedUrlAdress);

    NSURL *url = [NSURL URLWithString:encodedUrlAdress];
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
    [request startSynchronous];
    NSError *error = [request error];

    if (!error) {
// do stuff
}
Run Code Online (Sandbox Code Playgroud)

iphone asihttprequest

12
推荐指数
1
解决办法
1万
查看次数

ARC和ASIHTTPRequest

我有一个奇怪的问题.

ASIHTTPRequest在启用了ARC的iOS 5项目中使用.由于ASIHTTPRequest不支持ARC我已在所有单个ASIHTTPRequest文件上禁用ARC .

在此输入图像描述

但是,当我尝试编译我的项目时,xcode仍然认为这些文件是启用ARC的,它会抱怨.

在此输入图像描述

我做错了什么或是xcode中的错误?不要告诉我ASIHTTPRequest使用重构工具转换为ARC兼容代码.我试图这样做,xcode抱怨项目上启用了ARC(?!?!).

iphone asihttprequest ios xcode4.2 automatic-ref-counting

12
推荐指数
2
解决办法
6238
查看次数

AFNetworking - 通过UIProgressView下载多个文件+监控

我正在尝试将我的代码从ASIHTTPRequest更改为AFNetworking.目前我想选择10-15个不同的HTTP URL(文件)并将它们下载到文档文件夹.

使用ASIHTTPRequest非常简单

[myQueue setDownloadProgressDelegate:myUIProgressView];
Run Code Online (Sandbox Code Playgroud)

在AFNetworking中我无法弄清楚如何做到这一点.我有以下代码下载文件,存储它们并在文件成功下载时通知,但我无法为此队列创建总大小的进度条.

for (i=0; i<3; i++) {

    NSString *urlpath = [NSString stringWithFormat:@"http://www.domain.com/file.zip"];
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlpath]];

    AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *path = [[paths objectAtIndex:0] stringByAppendingPathComponent:[NSString stringWithFormat:@"testFile%i.zip",i]];
    operation.outputStream = [NSOutputStream outputStreamToFileAtPath:path append:NO];

    [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSLog(@"Successfully downloaded file to %@", path);
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"Error: %@", error);
    }];

    [operation setDownloadProgressBlock:^(NSInteger bytesWritten, NSInteger totalBytesWritten, NSInteger totalBytesExpectedToWrite) {
        NSLog(@"Sent %d of %d …
Run Code Online (Sandbox Code Playgroud)

iphone asihttprequest ios afnetworking

11
推荐指数
1
解决办法
1万
查看次数

'kCFStreamSSLAllowsExpiredCertificates'和'kCFStreamSSLAllowsAnyRoot'已弃用

我已将"ASIHTTPRequest"库添加到我的应用程序中.现在,我正在尝试删除项目中的所有警告.我已经修复了除"ASIHTTPRequest"之外的所有其他警告.我收到下面的警告.

不推荐使用'kCFStreamSSLAllowsExpiredCertificates':

不推荐使用'kCFStreamSSLAllowsAnyRoot':

怎么解决这个?

码:

NSDictionary *sslProperties = [[NSDictionary alloc] initWithObjectsAndKeys:
                      [NSNumber numberWithBool:YES], kCFStreamSSLAllowsExpiredCertificates,
                      [NSNumber numberWithBool:YES], kCFStreamSSLAllowsAnyRoot,
                      [NSNumber numberWithBool:NO],  kCFStreamSSLValidatesCertificateChain,
                      kCFNull,kCFStreamSSLPeerName,
                      nil];
Run Code Online (Sandbox Code Playgroud)

截图

objective-c asihttprequest ios

11
推荐指数
2
解决办法
6377
查看次数

对于分块传输编码,NSURLConnection的替代方法是什么

我已经检查了与此相关的其他问题,但唯一的答案是"使用ASIHTTPRequest",因为这已经不再开发了我想问一下人们正在使用什么替代方案,而在我们的SDK上工作时我遇到了很多奇怪的行为NSURLConnection从服务器接收数据时.

我们追踪到的事实是,NSURLConnection它不能很好地处理分块编码中的响应.或者至少我们在这里阅读NSURLConnection和"chunked"转移编码这个问题

我们正在谈论的一些开发人员说它在iOS 5中变得更好,我们需要确保我们的SDK至少与iOS 4.3向后兼容.

我想确认这是一个问题NSURLConnection,以及人们如何处理它.

到目前为止,我发现的所有替代方案都是基于NSURLConnection并且我假设因此具有相同的缺陷.ASIHTTPRequest事实上确实有效,因为它的基础略低于NSURLConnection,但正在寻找不再支持的知识替代品.

其他的库列表看着是: Restkit, ShareKit, LRResty, AFNetworking, TTURLRequest

我知道这里有类似的问题RESTKit是ASIHTTPRequest的一个很好的替代品吗?这里ASIHTTPRequest替代方案但这两个解决方案都基于NSURLConnection.

编辑:我注意到我在帖子的开头指出了错误的问题,所以更新了.它指向了2008年的一个主题,我看到了类似的但没有最新的.

nsurlconnection asihttprequest chunked-encoding ios

10
推荐指数
2
解决办法
6442
查看次数

ASIHTTPRequest - HTTPS

ASIHTTPRequest是否支持HTTPS连接?我的连接现在适用于HTTP连接和错误,如果我尝试HTTPS连接.(进入requestFailed并给我一个ASIHTTPErrorRequestDomain)

-(void) getData
{

av.hidden = NO;
[av startAnimating];

NSString *urlString = [IP stringByAppendingString:@"Method1"];
NSURL *url = [NSURL URLWithString:urlString];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
NSLog(@"URL = %@",url);
[request setRequestMethod:@"POST"];
[request setPostValue:@"val1" forKey:@"key1"];
[request setPostValue:@"val2" forKey:@"key2"];
[request setDelegate:self];
[request startAsynchronous];    
}

- (void)requestFinished:(ASIHTTPRequest *)request
{
    // Use when fetching text data
    //NSString *responseString = [request responseString];

    // Use when fetching binary data
    NSData *responseData = [request responseData];
    [self parseData:responseData];

    [av stopAnimating];
    av.hidden = YES;
}


- (void)requestFailed:(ASIHTTPRequest *)request
{
    NSError *error …
Run Code Online (Sandbox Code Playgroud)

iphone asihttprequest

9
推荐指数
1
解决办法
1万
查看次数

为什么我的ASIHTTPRequest文件显示ARC错误?

我已经实现了所有ASIHTTPRequest文件,但遗憾的是发生了以下错误:

在此输入图像描述

在此输入图像描述

为什么会这样?

iphone xcode objective-c asihttprequest ios

9
推荐指数
2
解决办法
1万
查看次数

如何使用asihttprequest接受自签名证书

我正在尝试使用自签名证书来处理我的应用程序.

我现在正在使用ASIHTTPRequest库,如下所示:

- (IBAction)sendHttpsRequest
{    
    //Set request address
    NSMutableString *databaseURL = [[NSMutableString alloc] initWithString:@"https://142.18.87.46:443"];

    //call ASIHTTP delegates (Used to connect to database)
    NSURL *url = [NSURL URLWithString:databaseURL];

    //This sets up all other request
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];

    [request setDelegate:self];
    [request setValidatesSecureCertificate:YES];
    [request startAsynchronous];
}
Run Code Online (Sandbox Code Playgroud)

我已经将setValidatesSecureCertificate设置为YES,希望会发生一些事情,但显然什么都没有,因为我不确定我必须做什么.

这是我在日志中收到的错误

2011-12-06 14:27:33.514 connectionTest[916:207] Error Domain=ASIHTTPRequestErrorDomain Code=1 "A connection failure occurred: SSL problem (Possible causes may include a bad/expired/self-signed certificate, clock set to wrong date)" UserInfo=0x683a860 {NSUnderlyingError=0x68390d0 "The operation couldn’t be completed. (OSStatus error …
Run Code Online (Sandbox Code Playgroud)

iphone asihttprequest ios

9
推荐指数
1
解决办法
9236
查看次数

Objective C - 使用ASIHTTPRequest从GET获得HTTP/0.9响应

我已经开始在我的iOS项目中使用ASIHTTPRequest来执行REST服务器方法调用,到目前为止它已经非常成功.我只有一个奇怪的间歇性问题.偶尔我使用[ASIHTTPRequest startAsynchronous]得到以下响应:

HTTP/0.9 200 OK

发生这种情况时,我的服务器方法不会被调用.通常,每个方法调用都会返回一个以"HTTP/1.1"开头的响应.我正在使用带有GeoTrust/RapidSSL证书的HTTPS来保护连接.有趣的是,如果我尝试连接到SSL端口(443)但指定'http'作为协议,我发现我得到了相同的'HTTP/0.9 200 OK'响应.

只是为了添加更多信息 - 问题主要发生在应用程序闲置一段时间后.例如请求成功完成,然后让应用程序空闲一段时间,然后在下一个请求发生问题然后应用程序继续正常工作.

任何人都可以了解可能发生的事情吗?

非常感谢,乔纳森

更新:当问题发生时,我已经粘贴了ASIHTTPRequest输出的一些调试信息:

2012-07-12 09:35:49.376 mytestapp[3038:18f07] [CONNECTION] Closing connection #13 because it has expired
2012-07-12 09:35:49.377 mytestapp[3038:18f07] [CONNECTION] Closing connection #14 because it has expired
2012-07-12 09:35:49.378 mytestapp[3038:18f07] [CONNECTION] Closing connection #15 because it has expired
2012-07-12 09:35:49.380 mytestapp[3038:18f07] [CONNECTION] Request #39 will use connection #16
2012-07-12 09:35:49.381 mytestapp[3038:18f07] [CONNECTION] Request #40 will use connection #17
2012-07-12 09:35:49.382 mytestapp[3038:18f07] [CONNECTION] Request #41 will use connection #18
2012-07-12 09:35:49.529 mytestapp[3038:18f07] …
Run Code Online (Sandbox Code Playgroud)

rest https objective-c asihttprequest ios

9
推荐指数
1
解决办法
1868
查看次数

要为#import <libxml/HTMLparser.h>导入什么库

我已导入ASIHTTP files我的项目,里面 ASIWebPageRequest.m有以下导入:

#import <libxml/HTMLparser.h>
Run Code Online (Sandbox Code Playgroud)

这是不被承认的.我应该添加哪些库才能被识别?

iphone xcode asihttprequest

9
推荐指数
2
解决办法
1万
查看次数