菜鸟教程小白 发表于 2022-12-13 07:27:51

ios - 无法使用 AFNetworking 下载 .zip 文件


                                            <p><p>我可以使用字体松鼠 API 的所有其他端点,但是每当我尝试获取返回压缩字体套件的端点时,我得到 <code>Request failed: unacceptable content-type: "application/x -zip"</code>
和看起来像 </p> 的标题

<pre><code>status code: 200, headers {
Connection = \&#34;keep-alive\&#34;;
\&#34;Content-Disposition\&#34; = \&#34;attachment; filename=\\\&#34;1942-report-fontfacekit.zip\\\&#34;\&#34;;
\&#34;Content-Length\&#34; = 284695;
\&#34;Content-Transfer-Encoding\&#34; = binary;
\&#34;Content-Type\&#34; = \&#34;\\\&#34;application/x-zip\\\&#34;\&#34;;
Date = \&#34;Fri, 11 Apr 2014 23:21:37 GMT\&#34;;
Expires = 0;\n    Pragma = \&#34;no-cache\&#34;;
Server = \&#34;nginx admin\&#34;;
\&#34;Set-Cookie\&#34; = \&#34;admin_rm=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/; domain=www.fontsquirrel.com, sitetoken=9e7e8c6f53ffe68791fa9e6a2531fe88; expires=Mon, 08-Apr-2024 23:21:37 GMT; path=/; domain=www.fontsquirrel.com, tracker=b13703d93358d65f09306b1b09d6e072; path=/; domain=www.fontsquirrel.com\&#34;;
\&#34;X-Cache\&#34; = \&#34;HIT from Backend\&#34;;
\&#34;X-Powered-By\&#34; = \&#34;PHP/5.3.23\&#34;;
\&#34;X-UA-Compatible\&#34; = \&#34;IE=Edge,chrome=1\&#34;;
</code></pre>

<p>这对我来说真的很奇怪,因为我尝试将响应序列化程序设置为 XML、JSON 和 HTTP,每个都使用 <code>acceptableContentTypes = @"text/html",@"application/x-zip"</code>添加。我不确定我是否做错了什么,或者我是否应该要求 API 开发人员澄清他们最终是否有问题。我可以从 chrome 和 curl 发出完全相同的 GET 请求,并且它们都可以工作。</p>

<p>-- 编辑,添加代码片段
//初始化</p>

<pre><code>+(instancetype)sharedManager {
static APIManager *manager;
static dispatch_once_t onceToken;
dispatch_once(&amp;onceToken, ^{
    manager = [ initWithBaseURL:];
    manager.responseSerializer.acceptableContentTypes = ;
});
return manager;
</code></pre>

<p>}</p>

<p>//获取</p>

<pre><code>-(AFHTTPRequestOperation*)downloadFontFamily:(FontFamily*)fontFamily withBlock:(void(^)(UIFont *UIFont, NSError *error))callback {
return [self GET:FORMAT(@&#34;fontfacekit/%@&#34;,fontFamily.familyURLName) parameters:nil success:^(AFHTTPRequestOperation *operation,
                                                                                             id responseObject) {
    NSLog(@&#34;%@%@&#34;,,responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@&#34;FAIL %@\n%@&#34;,error.localizedDescription,error.userInfo);
}];
</code></pre>

<p>}</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>返回的内容类型不是 <code>application/x-zip</code> 而是 <code>"application-x-zip"</code>,而且我还必须使用 HTTPResponseSerializer。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 无法使用 AFNetworking 下载 .zip 文件,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/23024220/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/23024220/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 无法使用 AFNetworking 下载 .zip 文件