相关疑难解决方法(0)

RESTKit是ASIHTTPRequest的一个很好的替代品吗?

我已经使用ASIHTTPRequest了很长一段时间,我对此非常满意.但是由于它已被弃用,我正在考虑更换它.我的第一个就是去了NSURLConnection,但我发现ASIHTTPRequest实际上确实做了很多.例如,我喜欢它的队列处理.

我正在使用的iPhone应用程序使用REST API,所以我一直在考虑RESTKit.没有核心数据可以使用RESTKit吗?据我所知,我有纯数据对象,我不想使用Core Data,不管怎样.

还有其他好的选择ASIHTTPRequest吗?

顺便说一句我知道有一个类似的问题,但这更具体.

iphone rest http ios

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

在Objective-C中发送分块的HTTP 1.1请求

我有以下问题:我正在创建一个非常大的SOAP请求(数据是一个编码为Base64字符串的视频),因此我不能将其作为原始SOAP请求发送,而是需要在HTTP 1.1块中发送它.我似乎无法弄明白该怎么做.我在这里使用了代码: 对于分块传输编码,NSURLConnection的替代方法是什么, 但它似乎没有做我认为应该做的事情 - 我可以看到请求作为单个请求而不是许多块到达服务器上(我在服务器上使用WireShark来查看传入的流量.)

我知道Android上的类似功能使用Apache Foundations HTTP库进行Java工作 - 有了这些,任何预先未指定长度的HTTP请求都会作为HTTP 1.1 Chunked Request传输 - 我可以看到这些请求到达了服务器作为单独的块...我想模仿它.

(更新:似乎我AFNetworking可能有功能,但我没有找到任何关于如何使用它的例子.)

这是我的代码,或多或少:

NSString *soapBody = ....; //some correctly formed SOAP request XML here 


NSURL *url = [NSURL URLWithString:...];
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:url];
[request addValue: ... forHTTPHeaderField:@"SOAPAction"];
[request setHTTPMethod:@"POST"];
[request addValue:@"text/xml" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:[soapBody dataUsingEncoding:NSUTF8StringEncoding]];
ChunkedTransferConnection* connection = [ChunkedTransferConnection alloc];
[connection establishConnectionWithRequest:request];
Run Code Online (Sandbox Code Playgroud)

ChunkedTransferConnection的实现如下

@implementation ChunkedTransferConnection

    @synthesize p_connection;
    @synthesize p_responseData;

    - (void)establishConnectionWithRequest:(NSMutableURLRequest *)request
    {
        self.p_responseData = [[NSMutableData alloc] initWithLength:0] ;
        self.p_connection = [[NSURLConnection …
Run Code Online (Sandbox Code Playgroud)

soap objective-c nsurlconnection ios http-chunked

7
推荐指数
1
解决办法
2857
查看次数

ASIHTTPRequest替代方案

我正在使用ASIHTTPRequest与服务器通信,但它导致崩溃.这个bug早就知道了,但仍然是一个问题.

因此:ASIHTTPRequest有很好的替代方案吗?我在服务器端是灵活的,我也可以使用套接字或使用其他东西.你会为服务器客户端通信做些什么推荐?

iphone objective-c asihttprequest

5
推荐指数
3
解决办法
7386
查看次数

如何将URLSessionStreamTask与URLSession一起用于分块编码传输

我正在尝试连接到Twitter流API端点.它看起来像URLSession支持流式传输URLSessionStreamTask,但我无法弄清楚如何使用API​​.我也找不到任何示例代码.

我尝试测试以下内容,但没有记录网络流量:

let session = URLSession(configuration: .default, delegate: self, delegateQueue: nil)
let stream = session.streamTask(withHostName: "https://stream.twitter.com/1.1/statuses/sample.json", port: 22)
stream.startSecureConnection()
stream.readData(ofMinLength: 0, maxLength: 100000, timeout: 60, completionHandler: { (data, bool, error) in
   print("bool = \(bool)")
   print("error = \(String(describing: error))")
})
stream.resume()
Run Code Online (Sandbox Code Playgroud)

我也实现了委托方法(包括URLSessionStreamDelegate),但它们没有被调用.

如果某个代码发布了如何为chunked来自流端点的响应打开持久连接的示例,那将非常有用.此外,我正在寻求不涉及第三方库的解决方案.类似于/sf/answers/663165121/但使用URLSession等效更新的响应将是理想的.

注意:上面的示例代码中省略了授权信息.

network-programming chunked ios nsurlsession swift

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

Alamofire是否支持分块数据响应?

目前尚不清楚Alamofire是否支持大型或渐进数据集的分块数据。这是我的应用程序非常需要的功能,否则我可能不得不研究替代方法。

它在Alamofire Github页面上指出,Progress Closure & NSProgress但我不确定这意味着什么。

并根据Wikipedia上有关块式数据传输的描述。

Senders can begin transmitting dynamically-generated content before knowing the total size of that content.


为了清楚起见,让我解释为什么我需要这个。

基本上,我有一个很大的JSON文件,该文件已部分缓存。完整的JSON文件由较小的JSON对象组成。我使用iojs/ nodejs发送数据分块通过res.write()Express这些人,不知道送Content-Length头并将其作为分块的数据。我已通过验证了此作品html/js


让我知道您是否想要我提供代码来证明这一点!

json chunked-encoding swift alamofire

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