首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将图像上载到服务器时出错

将图像上载到服务器时出错
EN

Stack Overflow用户
提问于 2017-10-09 11:58:36
回答 1查看 53关注 0票数 0

我想把图片上传到服务器。当上传到服务器时,我得到502错误。以下是我正在犯的错误

代码语言:javascript
复制
 { status code: 502, headers {
    Connection = "keep-alive";
    "Content-Length" = 181;
    "Content-Type" = "text/html";
    Date = "Mon, 09 Oct 2017 10:47:49 GMT";
    Server = "nginx/1.4.6 (Ubuntu)";
} }

在错误Content-Type中,显示文本/html,但我将其放置为多部分/表单数据。

如果我删除内容类型中的边界,我的服务器抛出105错误,后端开发者说105意味着内容类型不匹配。

下面是我的代码:

代码语言:javascript
复制
   -(void)uploadImage:(UIImage *)image withBlock:(void (^)(NSError *error))block {
    self.apiPath = postProfilePath;
    NSString *requestUrl = [NSString stringWithFormat:@"%@%@", self.baseUrl, self.apiPath];
    requestUrl = [requestUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSMutableURLRequest *request = [self getRequestFor:requestUrl withImage:image cookies:[[AppManager sharedManager] storedCookies]];

    self.dataTask = [[AdmeNetworkManager sharedNetworkManager] requestWithRequestObject:request completionHandler:^(NSURLResponse *response, id responseData, NSError *error) {

        if(error)   {
             NSLog(@"error while uploading image %@",error);
            if(block) {
                block(error);
            }
        } else {
            NSDictionary *responseDict = (NSDictionary *)[AdmeUtility parseJsonData:responseData];
             NSLog(@"success %@",responseDict);
            if ([AdmeNetworkError isSuccessResponse:responseDict]) {
                if(block) {
                    block(error);
                }
            } else {
                if(block) {
                     NSLog(@"error upload Image %@",error);
                    error = [NSError errorWithDomain:@"adme" code:-3003 userInfo:responseDict];
                    block(error);
                }
            }
        }
    }];
}




 -(NSMutableURLRequest *)getRequestFor:(NSString *)requestUrl withImage:(UIImage *)image cookies:(NSDictionary *)cookies{
    NSError *error = nil;
    //    Request serializer
    NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] requestWithMethod:@"POST" URLString:requestUrl parameters:nil error:&error];
    if (cookies) {
        NSString *token = [NSString stringWithFormat:@"Bearer %@",[cookies objectForKey:@"token"]];
        NSString *userId = [NSString stringWithFormat:@"%@",[cookies objectForKey:@"id"]];
        [request setValue:token forHTTPHeaderField:@"token"];
        [request setValue:userId forHTTPHeaderField:@"appuserid"];
        NSLog(@"headers for image %@ %@",token, userId);
    }

    NSString *boundary = @"---------------------------14737809831466499882746641449";
    NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
    [request setValue:contentType forHTTPHeaderField: @"Content-Type"];
    //[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
    // post body
    NSMutableData *body = [NSMutableData data];

    NSData *imageData = UIImageJPEGRepresentation(image, 1.0);
   // NSString *fileNameStr = [NSString stringWithFormat:@"%@.jpg", imageName];
    // add params (all params are strings)
    [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=%@\r\n\r\n", @"imageCaption"] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithFormat:@"%@\r\n", @"Some Caption"] dataUsingEncoding:NSUTF8StringEncoding]];

    // add image data
    if (imageData) {

        [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
         [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"userfile\"; filename=\"%@.jpg\"\r\n", @"file"] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[@"Content-Type: image/jpeg\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
        //[body appendData:imageData];
        [body appendData:[NSData dataWithData:imageData]];
        [body appendData:[[NSString stringWithFormat:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
    }

    [body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];

    // setting the body of the post to the reqeust
    [request setHTTPBody:body];

    // set the content-length
    NSString *postLength = [NSString stringWithFormat:@"%lu", (unsigned long)[body length]];
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];

    return request;
}
EN

回答 1

Stack Overflow用户

发布于 2017-10-09 12:22:46

502 =不良网关错误。您的nginx.conf正在使用一个或多个proxy_pass指令与后端对话,该后端处于脱机状态,或者没有侦听proxy_pass指令指定的相同地址/端口。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46645924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档