peterchen149 2015-06-15 09:27 采纳率: 0%
浏览 894

使用nsurlsesseionuploadtask上传图片发生错误

直接上代码:

     NSURL *url = [NSURL URLWithString:urlStr];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    NSURLSession *session = [NSURLSession sharedSession];
    NSURLSessionUploadTask *uploadTask   = [session uploadTaskWithRequest:request fromData:imgData completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
        NSString *string = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
        NSLog(@"data str:%@",string);
        NSLog(@"success:%@",response);
        NSLog(@"error:%@",error);
    }];
    [uploadTask resume];

imgdata 和urlstr都是传进来的参数,
运行之后就报错:
error:Error Domain=NSURLErrorDomain Code=-1017 "cannot parse response" UserInfo=0x7fec6db0f070 {NSUnderlyingError=0x7fec6db0a280 "The operation couldn’t be completed. (kCFErrorDomainCFNetwork error -1017.)", NSErrorFailingURLStringKey=http://172.23.128.57:89/jf/platform/upload/appUpload, NSErrorFailingURLKey=http://172.23.128.57:89/jf/platform/upload/appUpload, _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-1, NSLocalizedDescription=cannot parse response}
请问怎么解决

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-03 23:46
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这段代码在iOS中尝试使用NSURLSession来上传文件。但是,你提供的错误信息表明服务器返回了一个错误的响应,可能是由于编码问题或者网络连接问题导致的。

    以下是一些建议和可能的解决方案:

    1. 检查网络连接:首先确保你的设备或服务器能够正常访问互联网。你可以尝试从另一个地方测试这个URL是否可以成功请求到资源。

    2. 验证服务器端正确处理了数据:确保服务器正确地解析并处理了图像数据,并且没有丢弃任何关键信息。如果你正在上传的是一个大文件,那么这可能是一个问题。

    3. 重新组织URL:有时候,URL可能会被格式化为不期望的方式,比如带有空格或者特殊字符。确保URL是有效的并且只包含数字、字母、以及一些特殊字符(例如/)。

    4. 使用代理服务器:如果服务器位于不同的地理位置,考虑使用代理服务器。这样可以减少DNS解析时间,并提高安全性。

    5. 增加日志记录:通过添加适当的日志记录,可以帮助追踪错误发生的具体上下文,从而更容易定位问题。

    6. 调试应用程序:使用Xcode中的调试工具来查看HTTP请求和响应。这将帮助你了解实际发送和接收的数据。

    希望以上建议能帮助你解决问题!

    评论

报告相同问题?