标签: cfnetwork

如何阅读我的应用程序的CFNetwork级用户代理?

我想以编程方式检索我的应用程序的User-Agent字符串.(注意:不是我的应用程序中的UIWebView的UA; NSURLConnection基于UA 的HTTP请求.)

有很多关于如何阅读应用程序的指南UIWebView User-Agent,但没有关于如何获取其HTTP请求中的<appname>/1.0 CFNetwork/456.23字符串的指南CFNetwork.有用于CFHTTPMessage复制所有标题字段的API ,但我只有一个NSURLRequest和一个NSURLResponse,这些是非桥接的不透明类型.救命!

(一些好的背景阅读:改变NSURLConnection的的userAgent提到,我想在格式.什么HTTP用户代理程序的iOS我做广告节目本身?确实也是如此.)

user-agent cfnetwork ios

5
推荐指数
1
解决办法
2061
查看次数

Apples Reachability 类是否有更复杂的替代方案?

Apple 已经创建了那个著名的 Reachability 类,但是查看代码我不太信任它。格式和标题很乱。

它也无法帮助显示“您没有互联网!” 警报。

我只想做:

  • 在某些时候下载一个 XML。

  • 当没有互联网时,显示警报。

  • 当下载 XML 时 Internet 断开连接,显示警报。

在我的应用程序中,用户没有点击下载按钮,这一切都在后台自动发生。

就是这样。真的。我现在在 Reachability 上花了 3 个小时,我的大脑拒绝了它。

有人用干净的标题和干净的代码创建了一个聪明的替代方案吗?使用起来非常简单的东西?

iphone cfnetwork reachability ipad ios

5
推荐指数
1
解决办法
1529
查看次数

NSStream streamError 57 - 套接字没有间歇性地连续发生

在对我的iOS 6应用程序进行了一些更改后(其中没有一个实际上与网络有关),我开始遇到一个奇怪的错误,我的流事件处理程序.这在iOS 5和iOS 6上都会发生,但在iOS 5上更频繁.这个错误每50秒发生一次,我的流事件处理程序遇到了NSStreamEventErrorOccurred.错误信息如下:

Application[6370:707] Error Occured with stream [<__NSCFInputStream: 0xd622ab0>]
Application[6370:707] Stream Status: 7
Application[6370:707] Error Code: 57
Application[6370:707] Error Desc: The operation couldn’t be completed. Socket is not connected
Application[6370:707] Error Reason: Socket is not connected
Application[6370:707] Error Domain: NSPOSIXErrorDomain
Run Code Online (Sandbox Code Playgroud)

发生此错误后,处理程序将遇到一对'连接重置对等'TCP错误,我认为这是由服务器发送RST数据包引起的.是否有任何其他方案可能导致此错误?我的应用程序正在连接到以AP模式广播wifi网络的硬件设备.

以下是我的NSStreamEventHasBytesAvailable活动代码.

case NSStreamEventHasBytesAvailable: {
    NSLog(@"Stream has bytes available! Stream is %@", stream);
    if (stream == iStream)
    {
        @try {

            uint8_t buf[2048];
            unsigned int len = 0;

            len = [(NSInputStream *)stream …
Run Code Online (Sandbox Code Playgroud)

iphone posix nsstream cfnetwork ios

5
推荐指数
0
解决办法
1413
查看次数

Xcode - iOS - 只需将文件上传到FTP服务器即可

我正在尝试使用FTP服务器.我已经搜索了所有内容,对于像我这样的初学者来说,一切都很难理解.SimpleFTPSample很难理解,因为它一次很多.视图,按钮,标签,textflelds,上传,下载,请求,列表,获取.与BlackRaccoon和其他一切相同.

如何简单和程序地将"test.txt"上传到FTP服务器:Xcode(iPhone应用程序)中的"192.168.1.111"没有视图或按钮.只是可以在ViewDidLoad中的代码.

也许这样的事情?:

NSURL* url = [NSURL URLWithString:@"ftp://username:pw@189.92.32.34"];
CFReadStreamRef stream = CFReadStreamCreateWithFTPURL(NULL, (__bridge CFURLRef) url);
stream.delegate= self;
[stream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[stream open];
Run Code Online (Sandbox Code Playgroud)

但是哪个档案?展开它,或编写新代码.我不知道,这对我来说是新的.

谢谢乔纳森

ftp xcode objective-c cfnetwork ios

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

使用Objective-C以编程方式记录客户端和服务器之间的TLS/SSL握手

我希望能够以编程方式查看TLS握手信息,并能够执行以下操作:

NSLog(@"Client Hello");
//...
NSLog(@"Server Hello");
Run Code Online (Sandbox Code Playgroud)

有一篇很好的博客文章更详细地显示了握手信息(或参见下面的wireshark捕获图片).

我已经在使用ASIHTTPRequest,因此下面的代码示例来自该代码库.但是,如果可以使用它来记录TLS握手信息,我会认真考虑切换到更现代的AFNetworking库.我相信AFNetworking使用不同的对象(即NSURLConnection,NSURLCredential).

我正在向流添加SecIdentityRef(查看更多代码上下文).

CFReadStreamSetProperty((CFReadStreamRef)[self readStream], kCFStreamPropertySSLSettings, sslProperties);
Run Code Online (Sandbox Code Playgroud)

我列出了以下网络事件:

static const CFOptionFlags kNetworkEvents = kCFStreamEventOpenCompleted | kCFStreamEventCanAcceptBytes | kCFStreamEventHasBytesAvailable | kCFStreamEventEndEncountered | kCFStreamEventErrorOccurred;
Run Code Online (Sandbox Code Playgroud)

此事件在文档的CFStream部分中描述.

这是流的打开方式(查看更多代码上下文):

CFStreamClientContext ctxt = {0, self, NULL, NULL, NULL};
if (CFReadStreamSetClient((CFReadStreamRef)[self readStream], kNetworkEvents, ReadStreamClientCallBack, &ctxt)) {
    if (CFReadStreamOpen((CFReadStreamRef)[self readStream])) {
        streamSuccessfullyOpened = YES;
    }
}
Run Code Online (Sandbox Code Playgroud)

调用callback(ReadStreamClientCallBack)来处理事件时使用switch语句:

switch (type) {
    case kCFStreamEventHasBytesAvailable:
        //...
        break;

    case kCFStreamEventEndEncountered:
        //...
        break; …
Run Code Online (Sandbox Code Playgroud)

objective-c cfnetwork ios ios6

5
推荐指数
0
解决办法
1045
查看次数

***由于未捕获的异常'NSGenericException'而终止应用程序,原因是:'开始日期不能晚于结束日期!'

我正在使用Alamofire,在我的应用程序运行几个小时后,我在模拟器上遇到了这个错误.

***由于未捕获的异常'NSGenericException'而终止应用程序,原因是:'开始日期不能晚于结束日期!'

我在控制台中得到了这个堆栈跟踪:

*** First throw call stack:
(
    0   CoreFoundation                      0x0000000111186d4b __exceptionPreprocess + 171
    1   libobjc.A.dylib                     0x0000000110be821e objc_exception_throw + 48
    2   Foundation                          0x00000001107f0e3c -[_NSConcreteDateInterval dealloc] + 0
    3   CFNetwork                           0x00000001131a18e8 -[__NSCFURLSessionTaskMetrics _initWithTask:] + 868
    4   CFNetwork                           0x00000001131a1497 -[NSURLSessionTaskMetrics _initWithTask:] + 100
    5   CFNetwork                           0x0000000112f77bc7 -[__NSCFURLLocalSessionConnection _tick_finishing] + 351
    6   libdispatch.dylib                   0x00000001128e3978 _dispatch_call_block_and_release + 12
    7   libdispatch.dylib                   0x000000011290d0cd _dispatch_client_callout + 8
    8   libdispatch.dylib                   0x00000001128eae17 _dispatch_queue_serial_drain + 236
    9   libdispatch.dylib                   0x00000001128ebb4b _dispatch_queue_invoke + 1073
    10  libdispatch.dylib                   0x00000001128ee385 _dispatch_root_queue_drain + 720
    11 …
Run Code Online (Sandbox Code Playgroud)

cfnetwork ios alamofire

5
推荐指数
1
解决办法
1646
查看次数

CFNetwork CFAllocatedReferenceCountedObject :: _ retainable_hash(void const*)崩溃

崩溃日志:1 CRASH 1 USER

CFNetwork CFAllocatedReferenceCountedObject :: _ retainable_hash(void const*)

崩溃:com.apple.CFNetwork.LoaderQ

0  CFNetwork                      0x183985310 CFAllocatedReferenceCountedObject::_retainable_hash(void const*) + 26 
1  CoreFoundation                 0x18321e160 CFBasicHashFindBucket + 164 
2  CoreFoundation                 0x18321e0a0 CFDictionaryGetValue
    + 224 
3  CFNetwork                      0x1839b5a4c TubeManager::_onqueue_enqueueRequestForProtocol(MetaConnectionCacheClient*, HTTPRequestMessage const*, MetaConnectionOptions, BaseAwaitingTube*) + 80 
4  CFNetwork                      0x1839b69b4 TubeManager::_onqueue_reenqueueAwaitingTube(BaseAwaitingTube*) + 112 
5 CFNetwork                      0x1839b6c14 invocation function for block in TubeManager::_onqueue_newTubeReady(Tube*, CFStreamError) + 28 
6  CFNetwork                      0x183b152e4 invocation function for block in QCoreSchedulingSet::performAsync(void () block_pointer) const
    + 52 
7  libdispatch.dylib              0x182cdea54 _dispatch_call_block_and_release + 24 
8  libdispatch.dylib …
Run Code Online (Sandbox Code Playgroud)

crash cfnetwork ios cfnetworking swift

5
推荐指数
0
解决办法
310
查看次数

如何将cfnetwork和其他框架添加到您的项目中进行异步传输 - iphone

我想在我的项目中添加异步传输功能.

我希望在我的申请中关注.

  • 表视图应该通过Web服务加载数据(我可以)
  • 每个细胞必须有一个图像(我可以做)

但问题是到目前为止我使用的是同步传输.即加载所有数据然后显示包括图像.

现在,像苹果商店的表视图图像有时加载.我知道那是异步传输.

即使我试图理解pokeb-asi的例子.

但问题如下.

"我无法在iPhone的新应用程序中添加所有这些框架和文件(这是异步传输所必需的)."

问题是如何做到这一点?

编辑:

框架已成功添加.

现在我已将ASINetworkQueue.h&m + ASINSStringAdditions.h&m&所有文件添加到我的项目中.

我收到了这种错误.

- ASIHTTPRequest.o中的[ASIHTTPRequest attemptToApplyProxyCredentialsAndResume]

所有错误都是.o类型.

_SCNetworkReachabilityGetFlags引自:Reachability.o中的[Reachability remoteHostStatus]

如何解决这个错误?

iphone xcode asynchronous cfnetwork

4
推荐指数
1
解决办法
7025
查看次数

我需要一些关于iphone中CFNetwork的教程

我正在开发一个股票软件,客户端将从服务器接收数据,所以我想使用CFNetwork.我在哪里可以找到"网络入门"教程,谢谢

iphone cfnetwork

4
推荐指数
1
解决办法
7991
查看次数

dyld:未找到符号:_OBJC_CLASS _ $ _ NSHTTPURLResponse

我用Xcode6 Beta 2写了一个Swift应用程序,它使用NSURLRequest和等的CFNetwork类进行网络连接NSHTTPURLResponse.

该应用程序适用于iOS 8,当我尝试在iOS 7设备或运行iOS 7的模拟器上运行时,我在启动应用程序时遇到以下错误:

dyld: Symbol not found: _OBJC_CLASS_$_NSHTTPURLResponse
  Referenced from: /Users/patrick/Library/Developer/CoreSimulator/Devices/B0A61F43-A67C-4803-8F5D-77C3972107BE/data/Applications/E0C7C89F-9EEE-4893-BE5B-FCC224F2855D/CheckYourWeather.app/CheckYourWeather
  Expected in: /Applications/Xcode6-Beta2.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk/System/Library/Frameworks/CFNetwork.framework/CFNetwork
 in /Users/patrick/Library/Developer/CoreSimulator/Devices/B0A61F43-A67C-4803-8F5D-77C3972107BE/data/Applications/E0C7C89F-9EEE-4893-BE5B-FCC224F2855D/CheckYourWeather.app/CheckYourWeather
Run Code Online (Sandbox Code Playgroud)

我做了一些研究,发现这是一个链接问题.不过,我知道我正在使用的类已经在iOS 7中可用了.

我还尝试CFNetwork.framework在项目设置中添加框架并将其设置为可选,这只会导致App在运行时崩溃.

对我来说令人困惑的部分是:我写了一个测试应用程序,只是将我在主应用程序中使用的代码粘贴到它中,它运行得很好.因此代码可能不是问题.

从模拟器/设备删除应用程序,清理项目并删除Xcode的DerivedData没有解决问题.

更新:

这是导致崩溃的代码:

extension NSURLRequest {
    class func plainPostRequest(url: NSURL, httpBody: String) -> NSURLRequest {
        let urlRequest = NSMutableURLRequest(URL: url)
        urlRequest.HTTPMethod = "POST"
        urlRequest.HTTPBody = httpBody.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)
        urlRequest.setValue("text/plain", forHTTPHeaderField: "Content-Type")

        return urlRequest
    }
}
Run Code Online (Sandbox Code Playgroud)

但这只是一个例子.任何使用CFNetwork类都会导致应用程序在启动期间崩溃.

cfnetwork nshttpurlresponse ios7 swift xcode6

4
推荐指数
1
解决办法
4595
查看次数