Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何使用POST发送base64字符串_Ios_Post_Base64 - Fatal编程技术网

Ios 如何使用POST发送base64字符串

Ios 如何使用POST发送base64字符串,ios,post,base64,Ios,Post,Base64,hi Im将图像作为带有其他字符串参数的Base64字符串上载到web服务。我正在使用POST方法来实现这一点。这是我的密码 这是用于将图像转换为 -(NSString *)UpdateUserProf :(NSString *)UserCode :(NSString *)FirstName :(NSString *)LastName :(NSString*)NickName :(NSString *)Email :(NSString *)LanguageID :(UIImage *)Us

hi Im将图像作为带有其他字符串参数的
Base64
字符串上载到web服务。我正在使用
POST
方法来实现这一点。这是我的密码

这是用于将图像转换为

-(NSString *)UpdateUserProf :(NSString *)UserCode :(NSString *)FirstName :(NSString    *)LastName :(NSString*)NickName :(NSString *)Email :(NSString *)LanguageID :(UIImage *)UserImage64Base :(NSString *)UserImageFile :(NSString *)AuthGUID
 { 
    //Convert image to base64
    NSString *strEncoded;

    if (UserImage64Base==nil) {
        strEncoded=@"";
    }

    else
    {
        CGRect rect=CGRectMake(0,0,75,75);
        UIGraphicsBeginImageContext( rect.size );
        [UserImage64Base drawInRect:rect];
        UIImage *picture1 = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();

        NSData *imageData = UIImageJPEGRepresentation(picture1, 90);

        [Base64 initialize];
        strEncoded = [Base64 encode:imageData];

    }

    NSString *urlString = @"http://miserver.homeip.net//mCloudMusic/WebService/mMusic.asmx/UpdateUserProfile";
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
    [request setURL:[NSURL URLWithString:urlString]];
    [request setHTTPMethod:@"POST"];

    NSMutableData *body = [NSMutableData data];
这就是我为参数赋值的方式

    NSString *urlString = @"http://miserver.homeip.net//mCloudMusic/WebService/mMusic.asmx/UpdateUserProfile";
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
    [request setURL:[NSURL URLWithString:urlString]];
    [request setHTTPMethod:@"POST"];

    NSMutableData *body = [NSMutableData data];


    NSString *boundary = @"---------------------------14737809831466499882746641449";
    NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary];
    [request addValue:contentType forHTTPHeaderField:@"Content-Type"];

    // Text parameter1
    NSString *param1 = UserCode;
    [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"UserCode\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithString:param1] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];


    // Text parameter2
    NSString *param2 = FirstName;
    [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"FirstName\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithString:param2] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];


    // Text parameter3
    NSString *param3 = LastName;
    [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"LastName\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithString:param3] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];


    // Text parameter4
    NSString *param4 = NickName;
    [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"NickName\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithString:param4] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];//Email


    // Text parameter5
    NSString *param5 = Email;
    [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"Email\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithString:param5] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];


    // Text parameter6
    NSString *param6 = LanguageID;
    [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"LanguageID\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithString:param6] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];


    // Text parameter7
    NSString *param7 = strEncoded;
    [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"UserImage64Base\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithString:param7] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];


    // Text parameter8
    NSString *param8 = UserImageFile;
    [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"UserImageFile\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithString:param8] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];


    // Text parameter9
    NSString *param9 = AuthGUID;
    [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"AuthGUID\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithString:param9] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];



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


    // set request body
    [request setHTTPBody:body];


    //return and test
    NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];

    NSLog(@"%@", returnString);

    @try {
        NSDictionary *result=[returnString JSONValue];
        NSInteger strsucessorNot=[[result valueForKey:@"success"] integerValue];
        if (strsucessorNot==1) {
            return @"success";
        }
        else if (strsucessorNot==0)
        {
            NSString *error=[[result valueForKey:@"errors"] valueForKey:@"errMessage"];
        }
    }
    @catch (NSException *exception) {
        return nil;
    }

    return nil;

}
问题是我得到的响应字符串为

请求格式无效:多部分/表单数据;边界=------------------------------------14737809831466499882746641449。

为什么呢?我怎样才能解决这个问题?请帮帮我


谢谢

尝试一下这种方法

你找到解决方法了吗?