Tag: http

如何使用AFNetworking库与服务器进行HTTP持久连接

任何人都可以请指出我在正确的方向使用AFNetworking库与服务器的HTTP持久连接。 我已经看了下面的代码: NSURL *URL = [NSURL URLWithString:@"http://example.com"]; AFRocketClient *client = [[AFRocketClient alloc] init]; [client SUBSCRIBE:@"/resources" usingBlock:^(NSArray *operations, NSError *error) { for (AFJSONPatchOperation *operation in operations) { switch (operation.type) { case AFJSONAddOperationType: [resources addObject:operation.value]; break; default: break; } } } error:nil]; 从https://github.com/AFNetworking/AFRocketClient 我觉得这不是自我解释?

如何在iOS中为http请求指定源端口

我知道这是一个不寻常的事情需要做的,但我需要指定在iOS中的传出http请求中使用的源端口。 我知道有很多不同的“标准”方式发送http(s)请求 – 据我所知最常见的涉及NSURLConnection和NSURLSession,但我不知道是否可以指定源端口。 是否有可能以某种方式使用套接字接口来创build套接字,然后使用NSURLConnection或NSURLSession 这个套接字? 或者也许(作为黑客)可以指定我的应用程序可以使用的短暂端口范围(所以我会限制它的范围5或10端口)? 作为最后一把手:在iOS设备上是否有一些ip伪装或其他规则可供应用程序用来确保源端口是正确的? (我想可以写一个只需要手工伪装成正确的固定端口的stream程 – 本质上写一个本地http转发代理 – 这是我唯一的可能性吗?) 我不需要任何奇特的function或控制这些http请求, 除非它们需要来自某个非常窄的端口号范围。 非常感谢。 如果你想问为什么我有这样一个愚蠢的要求,请私下问 – 但不要混淆这个问题。 谢谢!! 我注意到,就在一年前, iOS:如何获得http连接的源端口被问到,但是询问关于读取系统select的临时端口。 谢谢

从Swift访问Azure表存储

我想从Swift访问azure色的表格存储。 但是,我试图build立请求,但不能使其工作: let urlString = "https://<myaccount>.table.core.windows.net/MyTable" let storageUrl = NSURL( string: urlString) let request = NSMutableURLRequest(URL: storageUrl!) //making the date let currentDate = NSDate() let httpFormatter = NSDateFormatter() httpFormatter.timeZone = NSTimeZone(abbreviation: "GMT") httpFormatter.dateFormat = "EEE',' dd MMM yyyy HH':'mm':'ss z" let httpTime = httpFormatter.stringFromDate(currentDate) print(httpTime) let signingString = "GET\n\n\n\(httpTime)\n/<myaccount>/MyTable" print(signingString) let keyString = <myKeyString> let […]

在UIWebView中使用自定义URLscheme

我有一个黑盒子容器。 我喜欢黑盒子,他们混淆了事情。 这个黑盒子是一个encryption的zip(有点),里面有一些html文件(这是简短的,没有那么痛苦的解释,版本)。 这些文件需要在UIWebView中显示。 现在,简单的方法来解密,解压缩到文件系统,从文件系统加载文件。 这很好,除了黑盒子包含秘密的东西,不能只是躺在文件系统上,甚至不是一秒钟,所以,我做了一个C库,实际上stream的箱子的内容(直接开箱) 。 现在,我有这个stream媒体function,必须以某种方式使其与UIWebView工作。 首先想到的是使用UIWebView可以发送请求的迷你本地HTTP服务器。 然后,我会自己pipe理这些请求,并使用我已经完成的stream式lib返回UIWebView所需的内容。 这可以工作,我想很好,但我认为一个小型的HTTP服务器可能会有点矫枉过正。 所以,我想知道,是否有另一种方式干扰UIWebView和文件系统? 也许使用自定义模式? 像myschema://? 每次UIWebView向myschema://myfile.html发出请求,我都会以某种方式干扰并返回所需的数据? 这样的想法是否可行? 我应该从哪里开始? 也许NSURLRequest? 编辑:我发现这个: iPhone SDK:从自定义URLscheme加载资源 。 但是,听起来不错,浏览器如何知道请求的大小,types(xml / binary / xhtml)以及HTTP头中放置的所有信息?

如何caching由WKWebView加载的资源?

我使用WKWebView来显示丰富的文字,包括图像。 我想将这些图像caching在磁盘上。 我如何获得这些HTTP请求并caching响应?

如何在iOS的共享首选项中保存cookie?

如何在iOS的共享首选项中保存cookie? 我以后怎样才能解压? 我想将HTTPCookieStorage.shared.cookies中的cookie保存到用户的默认值,然后提取请在Swift 3中回答

Android – API请求

我开发的应用程序也是在iPhone上。 问题是与API请求。 我为所有请求设置超时。 有时候会发生在30-60秒之间。 它看起来像这个应用程序的情侣请求,而不是rest,所有的时间超时,约45秒后一切正常。 我不知道这是服务器问题还是android。 这个问题不会发生在iOS 5的iPhone上,但也会在IOS 4上出现。 所有的请求是SSL和因为不可信的证书我使用这个类: public class HttpSupport { //******************************************** // Two methods to remove the "certificate" issue. //******************************************** public class MySSLSocketFactory extends SSLSocketFactory { SSLContext sslContext = SSLContext.getInstance("TLS"); public MySSLSocketFactory(KeyStore truststore) throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException { super(truststore); TrustManager tm = new X509TrustManager() { public void checkClientTrusted(X509Certificate[] chain, String […]

通过HTTP代理的iOS XMPP聊天

我有一个iPhone应用程序与2个服务工作: 使用REST服务通过http使用AFNetworking 通过TCP进行XMPP聊天 – 使用XMPPFramework https://github.com/robbiehanson/XMPPFramework 我的iPhone使用公司networking代理,所以我在设置http://qblx.co/1eJ9TwI设置HTTP代理 通过这个代理设置,所有对REST服务的请求都通过这个代理。 但是,我的应用程序直接连接到聊天服务器,没有代理。 如何使聊天工作通过代理? 正如我所看到的,XMPPFramework使用GCDAsyncSocket作为传输https://github.com/robbiehanson/CocoaAsyncSocket 你有什么build议如何设置通过代理聊天?

GET请求,iOS

我需要做这个GET请求: http://api.testmy.co.il/api/sync?BID=1049&ClientCode=3847&Discount=2.34&Service=0&Items=[{"Name":"Tax","Price":"2.11","Quantity":"1","SerialID":"1","Remarks":"","Toppings":""}]&Payments=[] 在浏览器中,我得到这个回应: { "Success": true, "Atava": [], "Pending": [], "CallWaiter": false } 但在iOS中不起作用。 我尝试: NSString *requestedURL=[NSString stringWithFormat:@"http://api.testmy.co.il/api/sync?BID=%i&ClientCode=%i&Discount=2.34&Service=0&Items=[{\"Name\":\"Tax\",\"Price\":\"2.11\",\"Quantity\":\"1\",\"SerialID\":\"1\",\"Remarks\":\"\",\"Toppings\":\"\"}]&Payments=[]",BID,num]; NSURL *url = [NSURL URLWithString:requestedURL]; NSURLResponse *response; NSData *GETReply = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil]; NSString *theReply = [[NSString alloc] initWithBytes:[GETReply bytes] length:[GETReply length] encoding: NSASCIIStringEncoding]; NSLog(@"Reply: %@", theReply); 要么 NSString *requestedURL = [NSString stringWithFormat:@"http://api.testmy.co.il/api/sync?BID=%i&ClientCode=%i&Discount=2.34&Service=0&Items=[{'Name':'Tax','Price':'2.11','Quantity':'1','SerialID':'1','Remarks':'','Toppings':''}]&Payments=[]", BID, num]; 要么 […]

我可以从NSHTTPURLResponse中的HTTP状态行访问“Reason Phrase”(原因短语)吗?

指定HTTP的RFC 2616在6.1.1节中说明了状态行的那部分是一个3位的数字状态码和一个文本的“原因短语”。 我正在构build一个iPhone应用程序,即使用NSURLConnection通过HTTP访问数据。 我可以毫无问题地得到HTTP状态码,但是我怎样才能访问“Reason Phrase”? 这是我的连接:didReceiveResponse:方法 – (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response; httpStatusCode = [httpResponse statusCode]; // Reason Phrase ?? } 具体而言,我不是指“xxx代表什么意思”文本的解释。 我可以在RFC中查找那些是静态的。 我的意思是服务器在状态行中生成的文本。 这种状态线的一个例子是: HTTP/1.1 412 ClientAppVersion: 0.10 < 0.11 原因短语在这里是“ClientAppVersion:0.10 <0.11”。 这个例子也给了我想要做的一些提示。 我正在构build一个类似REST的API,因此,我应该使用HTTP状态代码来指示错误。 但HTTP状态代码是为HTTP而不是我的应用程序发明的,所以我尝试将额外的信息塞入到Reason Phrase中。