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

ios – 在Objective-C中发送分块的HTTP 1.1请求,第1张

概述我有以下问题:我正在创建一个非常大的SOAP请求(数据是一个编码为Base64字符串的视频),因此我不能将其作为原始SOAP请求发送,而是需要在HTTP 1.1块中发送它.我似乎无法弄明白该怎么做.我在这里使用了代码: What are alternatives to NSURLConnection for chunked transfer encoding 但它似乎没有做我认为应该做的事情 – 我有以下问题:我正在创建一个非常大的SOAP请求(数据是一个编码为Base64字符串的视频),因此我不能将其作为原始SOAP请求发送,而是需要在http 1.1块中发送它.我似乎无法弄明白该怎么做.我在这里使用了代码:
What are alternatives to NSURLConnection for chunked transfer encoding
但它似乎没有做我认为应该做的事情 – 我可以看到请求作为单个请求到达服务器而不是很多块(我在服务器上使用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];

ChunkedTransferConnection的实现如下

@implementation ChunkedTransferConnection    @synthesize p_connection;    @synthesize p_responseData;    - (voID)establishConnectionWithRequest:(NSMutableURLRequest *)request    {        self.p_responseData = [[NSMutableData alloc] initWithLength:0] ;        self.p_connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];    }...@end
解决方法 弄清楚了:
NSinputStream *dataStream = [NSinputStream inputStreamWithData:[soapBody dataUsingEnCoding:NSUTF8StringEnCoding]];[request sethttpBodyStream:dataStream];

这会导致请求自动处于HTP 1.1块中!

总结

以上是内存溢出为你收集整理的ios – 在Objective-C中发送分块的HTTP 1.1请求全部内容,希望文章能够帮你解决ios – 在Objective-C中发送分块的HTTP 1.1请求所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1099263.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存